﻿2026-06-18T12:03:28.8509844Z ##[group]Run ./traceable-reqs check --json
2026-06-18T12:03:28.8510953Z [36;1m./traceable-reqs check --json[0m
2026-06-18T12:03:28.8525377Z shell: /usr/bin/bash -e {0}
2026-06-18T12:03:28.8526307Z ##[endgroup]
2026-06-18T12:03:28.9032729Z {
2026-06-18T12:03:28.9035056Z   "schemaVersion": 1,
2026-06-18T12:03:28.9036445Z   "summary": {
2026-06-18T12:03:28.9037699Z     "requirementCount": 249,
2026-06-18T12:03:28.9039276Z     "completeCount": 249,
2026-06-18T12:03:28.9041136Z     "incompleteCount": 0,
2026-06-18T12:03:28.9042524Z     "findingCount": 0
2026-06-18T12:03:28.9064651Z   },
2026-06-18T12:03:28.9065849Z   "requirements": [
2026-06-18T12:03:28.9067103Z     {
2026-06-18T12:03:28.9068244Z       "id": "REQ-API-1",
2026-06-18T12:03:28.9070252Z       "title": "api prefix and adapter_name on every machinery invocation",
2026-06-18T12:03:28.9072421Z       "requiredStages": [
2026-06-18T12:03:28.9073642Z         "impl",
2026-06-18T12:03:28.9074615Z         "unit",
2026-06-18T12:03:28.9075584Z         "int"
2026-06-18T12:03:28.9076639Z       ],
2026-06-18T12:03:28.9077536Z       "stages": {
2026-06-18T12:03:28.9078516Z         "doc": {
2026-06-18T12:03:28.9079572Z           "complete": false,
2026-06-18T12:03:28.9080999Z           "evidence": []
2026-06-18T12:03:28.9082127Z         },
2026-06-18T12:03:28.9083067Z         "impl": {
2026-06-18T12:03:28.9084107Z           "complete": true,
2026-06-18T12:03:28.9085267Z           "evidence": [
2026-06-18T12:03:28.9086338Z             {
2026-06-18T12:03:28.9087437Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9089042Z               "line": 15
2026-06-18T12:03:28.9089894Z             }
2026-06-18T12:03:28.9090595Z           ]
2026-06-18T12:03:28.9091268Z         },
2026-06-18T12:03:28.9091949Z         "int": {
2026-06-18T12:03:28.9092697Z           "complete": true,
2026-06-18T12:03:28.9093537Z           "evidence": [
2026-06-18T12:03:28.9094310Z             {
2026-06-18T12:03:28.9095140Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:28.9096235Z               "line": 13
2026-06-18T12:03:28.9097022Z             }
2026-06-18T12:03:28.9097736Z           ]
2026-06-18T12:03:28.9098394Z         },
2026-06-18T12:03:28.9099136Z         "unit": {
2026-06-18T12:03:28.9099881Z           "complete": true,
2026-06-18T12:03:28.9100721Z           "evidence": [
2026-06-18T12:03:28.9101489Z             {
2026-06-18T12:03:28.9102280Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9103338Z               "line": 717
2026-06-18T12:03:28.9104126Z             },
2026-06-18T12:03:28.9104856Z             {
2026-06-18T12:03:28.9105656Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9106896Z               "line": 804
2026-06-18T12:03:28.9107991Z             }
2026-06-18T12:03:28.9109029Z           ]
2026-06-18T12:03:28.9109950Z         }
2026-06-18T12:03:28.9110853Z       }
2026-06-18T12:03:28.9111764Z     },
2026-06-18T12:03:28.9112674Z     {
2026-06-18T12:03:28.9113602Z       "id": "REQ-API-2",
2026-06-18T12:03:28.9115402Z       "title": "The api subcommand surface (bind/listen/poll/state/worker/boundary/...)",
2026-06-18T12:03:28.9117456Z       "requiredStages": [
2026-06-18T12:03:28.9118575Z         "impl",
2026-06-18T12:03:28.9119642Z         "unit",
2026-06-18T12:03:28.9120594Z         "int"
2026-06-18T12:03:28.9121555Z       ],
2026-06-18T12:03:28.9122500Z       "stages": {
2026-06-18T12:03:28.9123500Z         "doc": {
2026-06-18T12:03:28.9124530Z           "complete": false,
2026-06-18T12:03:28.9125731Z           "evidence": []
2026-06-18T12:03:28.9126821Z         },
2026-06-18T12:03:28.9127507Z         "impl": {
2026-06-18T12:03:28.9128260Z           "complete": true,
2026-06-18T12:03:28.9129177Z           "evidence": [
2026-06-18T12:03:28.9130012Z             {
2026-06-18T12:03:28.9131164Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T12:03:28.9132660Z               "line": 17
2026-06-18T12:03:28.9133604Z             },
2026-06-18T12:03:28.9134299Z             {
2026-06-18T12:03:28.9135849Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:28.9137222Z               "line": 20
2026-06-18T12:03:28.9138195Z             },
2026-06-18T12:03:28.9138916Z             {
2026-06-18T12:03:28.9139851Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:28.9140911Z               "line": 142
2026-06-18T12:03:28.9141710Z             },
2026-06-18T12:03:28.9142413Z             {
2026-06-18T12:03:28.9143454Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9144530Z               "line": 24
2026-06-18T12:03:28.9145316Z             },
2026-06-18T12:03:28.9146013Z             {
2026-06-18T12:03:28.9146870Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9147922Z               "line": 41
2026-06-18T12:03:28.9148703Z             },
2026-06-18T12:03:28.9149491Z             {
2026-06-18T12:03:28.9150330Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9151398Z               "line": 209
2026-06-18T12:03:28.9152214Z             },
2026-06-18T12:03:28.9152921Z             {
2026-06-18T12:03:28.9153770Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9154823Z               "line": 251
2026-06-18T12:03:28.9155624Z             },
2026-06-18T12:03:28.9156325Z             {
2026-06-18T12:03:28.9157164Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9158248Z               "line": 330
2026-06-18T12:03:28.9159154Z             },
2026-06-18T12:03:28.9159865Z             {
2026-06-18T12:03:28.9160710Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9161787Z               "line": 393
2026-06-18T12:03:28.9162584Z             },
2026-06-18T12:03:28.9163290Z             {
2026-06-18T12:03:28.9164139Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9165204Z               "line": 432
2026-06-18T12:03:28.9166007Z             },
2026-06-18T12:03:28.9166713Z             {
2026-06-18T12:03:28.9167524Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:28.9168570Z               "line": 17
2026-06-18T12:03:28.9169466Z             },
2026-06-18T12:03:28.9170166Z             {
2026-06-18T12:03:28.9170977Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:28.9172014Z               "line": 30
2026-06-18T12:03:28.9172800Z             },
2026-06-18T12:03:28.9173505Z             {
2026-06-18T12:03:28.9174323Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:28.9175386Z               "line": 63
2026-06-18T12:03:28.9176169Z             },
2026-06-18T12:03:28.9176878Z             {
2026-06-18T12:03:28.9177694Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:28.9178749Z               "line": 77
2026-06-18T12:03:28.9179645Z             }
2026-06-18T12:03:28.9180345Z           ]
2026-06-18T12:03:28.9181027Z         },
2026-06-18T12:03:28.9181711Z         "int": {
2026-06-18T12:03:28.9182474Z           "complete": true,
2026-06-18T12:03:28.9183318Z           "evidence": [
2026-06-18T12:03:28.9184089Z             {
2026-06-18T12:03:28.9184930Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:28.9186000Z               "line": 14
2026-06-18T12:03:28.9186780Z             },
2026-06-18T12:03:28.9187485Z             {
2026-06-18T12:03:28.9188325Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:28.9189518Z               "line": 187
2026-06-18T12:03:28.9190314Z             }
2026-06-18T12:03:28.9191006Z           ]
2026-06-18T12:03:28.9191688Z         },
2026-06-18T12:03:28.9192371Z         "unit": {
2026-06-18T12:03:28.9193120Z           "complete": true,
2026-06-18T12:03:28.9193959Z           "evidence": [
2026-06-18T12:03:28.9194748Z             {
2026-06-18T12:03:28.9195591Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T12:03:28.9196664Z               "line": 82
2026-06-18T12:03:28.9197454Z             },
2026-06-18T12:03:28.9198161Z             {
2026-06-18T12:03:28.9199252Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:28.9200321Z               "line": 279
2026-06-18T12:03:28.9201118Z             },
2026-06-18T12:03:28.9201814Z             {
2026-06-18T12:03:28.9202666Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9203742Z               "line": 705
2026-06-18T12:03:28.9204543Z             },
2026-06-18T12:03:28.9205238Z             {
2026-06-18T12:03:28.9206218Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9207281Z               "line": 716
2026-06-18T12:03:28.9208067Z             },
2026-06-18T12:03:28.9208759Z             {
2026-06-18T12:03:28.9209689Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9210749Z               "line": 869
2026-06-18T12:03:28.9211539Z             },
2026-06-18T12:03:28.9212227Z             {
2026-06-18T12:03:28.9213069Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9214125Z               "line": 915
2026-06-18T12:03:28.9214912Z             },
2026-06-18T12:03:28.9215593Z             {
2026-06-18T12:03:28.9216411Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:28.9217436Z               "line": 143
2026-06-18T12:03:28.9218209Z             },
2026-06-18T12:03:28.9218893Z             {
2026-06-18T12:03:28.9219781Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:28.9220800Z               "line": 187
2026-06-18T12:03:28.9221576Z             }
2026-06-18T12:03:28.9222248Z           ]
2026-06-18T12:03:28.9222887Z         }
2026-06-18T12:03:28.9223531Z       }
2026-06-18T12:03:28.9224157Z     },
2026-06-18T12:03:28.9224796Z     {
2026-06-18T12:03:28.9225463Z       "id": "REQ-API-3",
2026-06-18T12:03:28.9226461Z       "title": "commune/signoff are file-drops, not commands",
2026-06-18T12:03:28.9227587Z       "requiredStages": [
2026-06-18T12:03:28.9228373Z         "impl",
2026-06-18T12:03:28.9229187Z         "unit",
2026-06-18T12:03:28.9229884Z         "int"
2026-06-18T12:03:28.9230561Z       ],
2026-06-18T12:03:28.9231214Z       "stages": {
2026-06-18T12:03:28.9231926Z         "doc": {
2026-06-18T12:03:28.9232654Z           "complete": false,
2026-06-18T12:03:28.9233485Z           "evidence": []
2026-06-18T12:03:28.9234251Z         },
2026-06-18T12:03:28.9234912Z         "impl": {
2026-06-18T12:03:28.9235642Z           "complete": true,
2026-06-18T12:03:28.9236447Z           "evidence": [
2026-06-18T12:03:28.9237198Z             {
2026-06-18T12:03:28.9237980Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:28.9239076Z               "line": 27
2026-06-18T12:03:28.9239834Z             },
2026-06-18T12:03:28.9240511Z             {
2026-06-18T12:03:28.9241321Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9242348Z               "line": 562
2026-06-18T12:03:28.9243120Z             }
2026-06-18T12:03:28.9243778Z           ]
2026-06-18T12:03:28.9244431Z         },
2026-06-18T12:03:28.9245090Z         "int": {
2026-06-18T12:03:28.9245830Z           "complete": true,
2026-06-18T12:03:28.9246640Z           "evidence": [
2026-06-18T12:03:28.9247378Z             {
2026-06-18T12:03:28.9248196Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:28.9249346Z               "line": 261
2026-06-18T12:03:28.9250114Z             }
2026-06-18T12:03:28.9250780Z           ]
2026-06-18T12:03:28.9251433Z         },
2026-06-18T12:03:28.9252090Z         "unit": {
2026-06-18T12:03:28.9252816Z           "complete": true,
2026-06-18T12:03:28.9253623Z           "evidence": [
2026-06-18T12:03:28.9254371Z             {
2026-06-18T12:03:28.9255155Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:28.9256181Z               "line": 280
2026-06-18T12:03:28.9256929Z             },
2026-06-18T12:03:28.9257605Z             {
2026-06-18T12:03:28.9258418Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:28.9259567Z               "line": 944
2026-06-18T12:03:28.9260331Z             }
2026-06-18T12:03:28.9261120Z           ]
2026-06-18T12:03:28.9261764Z         }
2026-06-18T12:03:28.9262403Z       }
2026-06-18T12:03:28.9263036Z     },
2026-06-18T12:03:28.9263663Z     {
2026-06-18T12:03:28.9264307Z       "id": "REQ-API-4",
2026-06-18T12:03:28.9270618Z       "title": "api resolves the adapter manifest (+ profile + install dir) from `--adapter name:profile` via the registry when `--manifest` is omitted; `--manifest` becomes an optional OVERRIDE (unregistered / local-dev manifests). Removes the require-both-flags redundancy — a registered adapter's live bringup / digest / capability needs only `--adapter` — and yields the precise install dir (the record's source_dir) rather than the --manifest parent, closing the copy-mode psyche-binary edge (v0.8.0)",
2026-06-18T12:03:28.9276464Z       "requiredStages": [
2026-06-18T12:03:28.9277249Z         "doc",
2026-06-18T12:03:28.9277925Z         "impl",
2026-06-18T12:03:28.9278607Z         "unit"
2026-06-18T12:03:28.9279370Z       ],
2026-06-18T12:03:28.9280038Z       "stages": {
2026-06-18T12:03:28.9280731Z         "doc": {
2026-06-18T12:03:28.9306876Z           "complete": true,
2026-06-18T12:03:28.9307739Z           "evidence": [
2026-06-18T12:03:28.9308475Z             {
2026-06-18T12:03:28.9309291Z               "path": "CONTEXT.md",
2026-06-18T12:03:28.9310183Z               "line": 149
2026-06-18T12:03:28.9310934Z             }
2026-06-18T12:03:28.9311601Z           ]
2026-06-18T12:03:28.9312363Z         },
2026-06-18T12:03:28.9313146Z         "impl": {
2026-06-18T12:03:28.9313973Z           "complete": true,
2026-06-18T12:03:28.9314770Z           "evidence": [
2026-06-18T12:03:28.9315504Z             {
2026-06-18T12:03:28.9316249Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9317252Z               "line": 484
2026-06-18T12:03:28.9317999Z             }
2026-06-18T12:03:28.9318657Z           ]
2026-06-18T12:03:28.9319398Z         },
2026-06-18T12:03:28.9320037Z         "int": {
2026-06-18T12:03:28.9320753Z           "complete": false,
2026-06-18T12:03:28.9321583Z           "evidence": []
2026-06-18T12:03:28.9322333Z         },
2026-06-18T12:03:28.9322972Z         "unit": {
2026-06-18T12:03:28.9323678Z           "complete": true,
2026-06-18T12:03:28.9324471Z           "evidence": [
2026-06-18T12:03:28.9325192Z             {
2026-06-18T12:03:28.9325941Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9326921Z               "line": 657
2026-06-18T12:03:28.9327668Z             },
2026-06-18T12:03:28.9328336Z             {
2026-06-18T12:03:28.9329193Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9330177Z               "line": 681
2026-06-18T12:03:28.9330931Z             },
2026-06-18T12:03:28.9331585Z             {
2026-06-18T12:03:28.9332354Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:28.9333340Z               "line": 705
2026-06-18T12:03:28.9334079Z             }
2026-06-18T12:03:28.9334741Z           ]
2026-06-18T12:03:28.9335384Z         }
2026-06-18T12:03:28.9336028Z       }
2026-06-18T12:03:28.9336658Z     },
2026-06-18T12:03:28.9337289Z     {
2026-06-18T12:03:28.9337956Z       "id": "REQ-ARCH-1",
2026-06-18T12:03:28.9338881Z       "title": "Many small acyclically-layered crates",
2026-06-18T12:03:28.9340047Z       "requiredStages": [
2026-06-18T12:03:28.9340814Z         "impl"
2026-06-18T12:03:28.9341481Z       ],
2026-06-18T12:03:28.9342126Z       "stages": {
2026-06-18T12:03:28.9342823Z         "doc": {
2026-06-18T12:03:28.9343553Z           "complete": false,
2026-06-18T12:03:28.9344378Z           "evidence": []
2026-06-18T12:03:28.9345136Z         },
2026-06-18T12:03:28.9345793Z         "impl": {
2026-06-18T12:03:28.9346513Z           "complete": true,
2026-06-18T12:03:28.9347324Z           "evidence": [
2026-06-18T12:03:28.9348060Z             {
2026-06-18T12:03:28.9348821Z               "path": "crates/spt-msg/src/lib.rs",
2026-06-18T12:03:28.9349929Z               "line": 18
2026-06-18T12:03:28.9350773Z             },
2026-06-18T12:03:28.9351693Z             {
2026-06-18T12:03:28.9352477Z               "path": "crates/spt-proto/src/lib.rs",
2026-06-18T12:03:28.9353489Z               "line": 12
2026-06-18T12:03:28.9354246Z             },
2026-06-18T12:03:28.9354928Z             {
2026-06-18T12:03:28.9355705Z               "path": "crates/spt-store/src/lib.rs",
2026-06-18T12:03:28.9356696Z               "line": 12
2026-06-18T12:03:28.9357468Z             }
2026-06-18T12:03:28.9358134Z           ]
2026-06-18T12:03:28.9358919Z         },
2026-06-18T12:03:28.9359654Z         "int": {
2026-06-18T12:03:28.9360369Z           "complete": false,
2026-06-18T12:03:28.9361196Z           "evidence": []
2026-06-18T12:03:28.9361958Z         },
2026-06-18T12:03:28.9362606Z         "unit": {
2026-06-18T12:03:28.9363333Z           "complete": false,
2026-06-18T12:03:28.9364148Z           "evidence": []
2026-06-18T12:03:28.9364898Z         }
2026-06-18T12:03:28.9365532Z       }
2026-06-18T12:03:28.9366161Z     },
2026-06-18T12:03:28.9366794Z     {
2026-06-18T12:03:28.9367472Z       "id": "REQ-ARCH-2",
2026-06-18T12:03:28.9368543Z       "title": "Public SDK surface is spt-proto, spt-runtime, spt-msg",
2026-06-18T12:03:28.9369837Z       "requiredStages": [
2026-06-18T12:03:28.9370634Z         "impl"
2026-06-18T12:03:28.9371312Z       ],
2026-06-18T12:03:28.9371956Z       "stages": {
2026-06-18T12:03:28.9372643Z         "doc": {
2026-06-18T12:03:28.9373361Z           "complete": false,
2026-06-18T12:03:28.9374177Z           "evidence": []
2026-06-18T12:03:28.9374938Z         },
2026-06-18T12:03:28.9375595Z         "impl": {
2026-06-18T12:03:28.9376315Z           "complete": true,
2026-06-18T12:03:28.9377125Z           "evidence": [
2026-06-18T12:03:28.9377859Z             {
2026-06-18T12:03:28.9378647Z               "path": "crates/spt-runtime/src/lib.rs",
2026-06-18T12:03:28.9379721Z               "line": 18
2026-06-18T12:03:28.9380469Z             }
2026-06-18T12:03:28.9381131Z           ]
2026-06-18T12:03:28.9381780Z         },
2026-06-18T12:03:28.9382439Z         "int": {
2026-06-18T12:03:28.9383174Z           "complete": false,
2026-06-18T12:03:28.9383998Z           "evidence": []
2026-06-18T12:03:28.9384742Z         },
2026-06-18T12:03:28.9385393Z         "unit": {
2026-06-18T12:03:28.9386117Z           "complete": false,
2026-06-18T12:03:28.9386928Z           "evidence": []
2026-06-18T12:03:28.9387681Z         }
2026-06-18T12:03:28.9388325Z       }
2026-06-18T12:03:28.9389173Z     },
2026-06-18T12:03:28.9389815Z     {
2026-06-18T12:03:28.9390490Z       "id": "REQ-ARCH-3",
2026-06-18T12:03:28.9391710Z       "title": "Wire-protocol version independent of crate semver, N-1 compat window",
2026-06-18T12:03:28.9393086Z       "requiredStages": [
2026-06-18T12:03:28.9393872Z         "impl",
2026-06-18T12:03:28.9394549Z         "unit"
2026-06-18T12:03:28.9395220Z       ],
2026-06-18T12:03:28.9395866Z       "stages": {
2026-06-18T12:03:28.9396554Z         "doc": {
2026-06-18T12:03:28.9397298Z           "complete": false,
2026-06-18T12:03:28.9398125Z           "evidence": []
2026-06-18T12:03:28.9398894Z         },
2026-06-18T12:03:28.9399619Z         "impl": {
2026-06-18T12:03:28.9400342Z           "complete": true,
2026-06-18T12:03:28.9401137Z           "evidence": [
2026-06-18T12:03:28.9401875Z             {
2026-06-18T12:03:28.9402668Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T12:03:28.9403699Z               "line": 34
2026-06-18T12:03:28.9404456Z             },
2026-06-18T12:03:28.9405129Z             {
2026-06-18T12:03:28.9405942Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T12:03:28.9406956Z               "line": 41
2026-06-18T12:03:28.9407700Z             }
2026-06-18T12:03:28.9408364Z           ]
2026-06-18T12:03:28.9409087Z         },
2026-06-18T12:03:28.9409736Z         "int": {
2026-06-18T12:03:28.9410455Z           "complete": false,
2026-06-18T12:03:28.9411267Z           "evidence": []
2026-06-18T12:03:28.9412012Z         },
2026-06-18T12:03:28.9412665Z         "unit": {
2026-06-18T12:03:28.9413384Z           "complete": true,
2026-06-18T12:03:28.9414311Z           "evidence": [
2026-06-18T12:03:28.9415040Z             {
2026-06-18T12:03:28.9415851Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T12:03:28.9416873Z               "line": 51
2026-06-18T12:03:28.9417630Z             },
2026-06-18T12:03:28.9418304Z             {
2026-06-18T12:03:28.9419170Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T12:03:28.9420200Z               "line": 71
2026-06-18T12:03:28.9421062Z             },
2026-06-18T12:03:28.9421741Z             {
2026-06-18T12:03:28.9422543Z               "path": "crates/spt-proto/src/version.rs",
2026-06-18T12:03:28.9423554Z               "line": 83
2026-06-18T12:03:28.9424296Z             }
2026-06-18T12:03:28.9424961Z           ]
2026-06-18T12:03:28.9425605Z         }
2026-06-18T12:03:28.9426234Z       }
2026-06-18T12:03:28.9426863Z     },
2026-06-18T12:03:28.9427490Z     {
2026-06-18T12:03:28.9428143Z       "id": "REQ-ARCH-4",
2026-06-18T12:03:28.9429354Z       "title": "Copy-verbatim the commodity layer from the sister project",
2026-06-18T12:03:28.9430613Z       "requiredStages": [
2026-06-18T12:03:28.9431399Z         "impl",
2026-06-18T12:03:28.9432080Z         "unit"
2026-06-18T12:03:28.9432750Z       ],
2026-06-18T12:03:28.9433408Z       "stages": {
2026-06-18T12:03:28.9434100Z         "doc": {
2026-06-18T12:03:28.9434814Z           "complete": false,
2026-06-18T12:03:28.9435637Z           "evidence": []
2026-06-18T12:03:28.9436399Z         },
2026-06-18T12:03:28.9437061Z         "impl": {
2026-06-18T12:03:28.9437778Z           "complete": true,
2026-06-18T12:03:28.9438580Z           "evidence": [
2026-06-18T12:03:28.9439404Z             {
2026-06-18T12:03:28.9440187Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9441178Z               "line": 165
2026-06-18T12:03:28.9441931Z             },
2026-06-18T12:03:28.9442601Z             {
2026-06-18T12:03:28.9443382Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9444383Z               "line": 188
2026-06-18T12:03:28.9445131Z             },
2026-06-18T12:03:28.9445805Z             {
2026-06-18T12:03:28.9446588Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9447607Z               "line": 208
2026-06-18T12:03:28.9448371Z             },
2026-06-18T12:03:28.9449121Z             {
2026-06-18T12:03:28.9449898Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9450893Z               "line": 223
2026-06-18T12:03:28.9451648Z             },
2026-06-18T12:03:28.9452315Z             {
2026-06-18T12:03:28.9453091Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9454061Z               "line": 273
2026-06-18T12:03:28.9454815Z             }
2026-06-18T12:03:28.9455488Z           ]
2026-06-18T12:03:28.9456144Z         },
2026-06-18T12:03:28.9456786Z         "int": {
2026-06-18T12:03:28.9457505Z           "complete": false,
2026-06-18T12:03:28.9458317Z           "evidence": []
2026-06-18T12:03:28.9459152Z         },
2026-06-18T12:03:28.9459809Z         "unit": {
2026-06-18T12:03:28.9460534Z           "complete": true,
2026-06-18T12:03:28.9461345Z           "evidence": [
2026-06-18T12:03:28.9462068Z             {
2026-06-18T12:03:28.9462866Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9463869Z               "line": 334
2026-06-18T12:03:28.9464630Z             },
2026-06-18T12:03:28.9465303Z             {
2026-06-18T12:03:28.9466090Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9467093Z               "line": 344
2026-06-18T12:03:28.9467841Z             },
2026-06-18T12:03:28.9468508Z             {
2026-06-18T12:03:28.9469373Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9470355Z               "line": 355
2026-06-18T12:03:28.9471119Z             },
2026-06-18T12:03:28.9471783Z             {
2026-06-18T12:03:28.9472567Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9473550Z               "line": 366
2026-06-18T12:03:28.9474439Z             },
2026-06-18T12:03:28.9475110Z             {
2026-06-18T12:03:28.9475887Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9476880Z               "line": 378
2026-06-18T12:03:28.9477644Z             },
2026-06-18T12:03:28.9478311Z             {
2026-06-18T12:03:28.9479180Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9480168Z               "line": 391
2026-06-18T12:03:28.9481035Z             },
2026-06-18T12:03:28.9481708Z             {
2026-06-18T12:03:28.9482483Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9483475Z               "line": 402
2026-06-18T12:03:28.9484234Z             },
2026-06-18T12:03:28.9484905Z             {
2026-06-18T12:03:28.9485684Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9486681Z               "line": 419
2026-06-18T12:03:28.9487435Z             },
2026-06-18T12:03:28.9488103Z             {
2026-06-18T12:03:28.9488877Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:28.9489944Z               "line": 547
2026-06-18T12:03:28.9490684Z             }
2026-06-18T12:03:28.9491352Z           ]
2026-06-18T12:03:28.9492001Z         }
2026-06-18T12:03:28.9492635Z       }
2026-06-18T12:03:28.9493244Z     },
2026-06-18T12:03:28.9493865Z     {
2026-06-18T12:03:28.9494518Z       "id": "REQ-CLI-1",
2026-06-18T12:03:28.9499322Z       "title": "spt endpoint noun namespace: absorbs fork/suspend/wake/shutdown/rename/stop/digest + access (ported 1:1: allow|revoke|open|list, decision 21) + description (ex-resources blurb; bare=show, set=author); merged endpoint list [--local|--subnet <name>] grouped by subnet with SELF pinned, --detail adding the ex-resources yellow-pages blurb projection; bare spt endpoint = the list (M8 decisions 1-2, 25)",
2026-06-18T12:03:28.9503990Z       "requiredStages": [
2026-06-18T12:03:28.9504754Z         "impl",
2026-06-18T12:03:28.9505440Z         "unit"
2026-06-18T12:03:28.9506086Z       ],
2026-06-18T12:03:28.9506729Z       "stages": {
2026-06-18T12:03:28.9507411Z         "doc": {
2026-06-18T12:03:28.9508135Z           "complete": false,
2026-06-18T12:03:28.9509010Z           "evidence": []
2026-06-18T12:03:28.9509805Z         },
2026-06-18T12:03:28.9510502Z         "impl": {
2026-06-18T12:03:28.9511264Z           "complete": true,
2026-06-18T12:03:28.9512057Z           "evidence": [
2026-06-18T12:03:28.9512792Z             {
2026-06-18T12:03:28.9513540Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9514488Z               "line": 225
2026-06-18T12:03:28.9515241Z             },
2026-06-18T12:03:28.9515910Z             {
2026-06-18T12:03:28.9516660Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9517599Z               "line": 1076
2026-06-18T12:03:28.9518351Z             },
2026-06-18T12:03:28.9519087Z             {
2026-06-18T12:03:28.9519822Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9520767Z               "line": 1605
2026-06-18T12:03:28.9521524Z             },
2026-06-18T12:03:28.9522184Z             {
2026-06-18T12:03:28.9522913Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9523842Z               "line": 2992
2026-06-18T12:03:28.9524583Z             }
2026-06-18T12:03:28.9525225Z           ]
2026-06-18T12:03:28.9525855Z         },
2026-06-18T12:03:28.9526480Z         "int": {
2026-06-18T12:03:28.9527188Z           "complete": false,
2026-06-18T12:03:28.9527982Z           "evidence": []
2026-06-18T12:03:28.9528712Z         },
2026-06-18T12:03:28.9529423Z         "unit": {
2026-06-18T12:03:28.9530134Z           "complete": true,
2026-06-18T12:03:28.9530910Z           "evidence": [
2026-06-18T12:03:28.9531623Z             {
2026-06-18T12:03:28.9532356Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9533288Z               "line": 7786
2026-06-18T12:03:28.9534036Z             }
2026-06-18T12:03:28.9534680Z           ]
2026-06-18T12:03:28.9535317Z         }
2026-06-18T12:03:28.9535942Z       }
2026-06-18T12:03:28.9536657Z     },
2026-06-18T12:03:28.9537277Z     {
2026-06-18T12:03:28.9537908Z       "id": "REQ-CLI-2",
2026-06-18T12:03:28.9541258Z       "title": "spt daemon noun: run|stop|status (hidden daemon verb becomes daemon run; agent-endpoint shutdown keeps its name under endpoint); daemon status renders the pump heartbeat (last-tick recency) so a half-dead daemon is never rendered implied-healthy (M8 decisions 5, 23)",
2026-06-18T12:03:28.9544524Z       "requiredStages": [
2026-06-18T12:03:28.9545422Z         "impl",
2026-06-18T12:03:28.9546093Z         "unit"
2026-06-18T12:03:28.9546756Z       ],
2026-06-18T12:03:28.9547376Z       "stages": {
2026-06-18T12:03:28.9548047Z         "doc": {
2026-06-18T12:03:28.9548745Z           "complete": false,
2026-06-18T12:03:28.9549608Z           "evidence": []
2026-06-18T12:03:28.9550332Z         },
2026-06-18T12:03:28.9550961Z         "impl": {
2026-06-18T12:03:28.9551659Z           "complete": true,
2026-06-18T12:03:28.9552433Z           "evidence": [
2026-06-18T12:03:28.9553166Z             {
2026-06-18T12:03:28.9553949Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:28.9554942Z               "line": 409
2026-06-18T12:03:28.9555686Z             },
2026-06-18T12:03:28.9556334Z             {
2026-06-18T12:03:28.9557119Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T12:03:28.9558121Z               "line": 97
2026-06-18T12:03:28.9558854Z             },
2026-06-18T12:03:28.9559582Z             {
2026-06-18T12:03:28.9560368Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:28.9561361Z               "line": 256
2026-06-18T12:03:28.9562096Z             },
2026-06-18T12:03:28.9562740Z             {
2026-06-18T12:03:28.9563479Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9564401Z               "line": 436
2026-06-18T12:03:28.9565149Z             },
2026-06-18T12:03:28.9565811Z             {
2026-06-18T12:03:28.9566547Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9567485Z               "line": 1160
2026-06-18T12:03:28.9568223Z             },
2026-06-18T12:03:28.9568881Z             {
2026-06-18T12:03:28.9569708Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9570633Z               "line": 1846
2026-06-18T12:03:28.9579619Z             },
2026-06-18T12:03:28.9580383Z             {
2026-06-18T12:03:28.9581121Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9582070Z               "line": 1925
2026-06-18T12:03:28.9582842Z             },
2026-06-18T12:03:28.9583503Z             {
2026-06-18T12:03:28.9584241Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9585195Z               "line": 1986
2026-06-18T12:03:28.9585949Z             }
2026-06-18T12:03:28.9586593Z           ]
2026-06-18T12:03:28.9587228Z         },
2026-06-18T12:03:28.9587852Z         "int": {
2026-06-18T12:03:28.9588562Z           "complete": false,
2026-06-18T12:03:28.9589453Z           "evidence": []
2026-06-18T12:03:28.9590189Z         },
2026-06-18T12:03:28.9590828Z         "unit": {
2026-06-18T12:03:28.9591534Z           "complete": true,
2026-06-18T12:03:28.9592325Z           "evidence": [
2026-06-18T12:03:28.9593037Z             {
2026-06-18T12:03:28.9593829Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:28.9594835Z               "line": 338
2026-06-18T12:03:28.9595565Z             },
2026-06-18T12:03:28.9596214Z             {
2026-06-18T12:03:28.9596940Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9597893Z               "line": 7924
2026-06-18T12:03:28.9598645Z             }
2026-06-18T12:03:28.9599360Z           ]
2026-06-18T12:03:28.9599984Z         }
2026-06-18T12:03:28.9600595Z       }
2026-06-18T12:03:28.9601198Z     },
2026-06-18T12:03:28.9601808Z     {
2026-06-18T12:03:28.9602442Z       "id": "REQ-CLI-3",
2026-06-18T12:03:28.9605757Z       "title": "Agent hot path stays flat across the M8 reorg: send/ring/ready/whoami/how-to unchanged; notify moves to subnet notify while notif stays top-level; breaking renames land clean with no deprecation shims (zero external CLI consumers pre-spt-claude-code) (M8 decisions 3-4, 9)",
2026-06-18T12:03:28.9609362Z       "requiredStages": [
2026-06-18T12:03:28.9610107Z         "impl",
2026-06-18T12:03:28.9610774Z         "unit"
2026-06-18T12:03:28.9611432Z       ],
2026-06-18T12:03:28.9612064Z       "stages": {
2026-06-18T12:03:28.9612740Z         "doc": {
2026-06-18T12:03:28.9613440Z           "complete": false,
2026-06-18T12:03:28.9614355Z           "evidence": []
2026-06-18T12:03:28.9615087Z         },
2026-06-18T12:03:28.9615707Z         "impl": {
2026-06-18T12:03:28.9616404Z           "complete": true,
2026-06-18T12:03:28.9617169Z           "evidence": [
2026-06-18T12:03:28.9617887Z             {
2026-06-18T12:03:28.9618612Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9619596Z               "line": 1070
2026-06-18T12:03:28.9620343Z             }
2026-06-18T12:03:28.9620991Z           ]
2026-06-18T12:03:28.9621616Z         },
2026-06-18T12:03:28.9622239Z         "int": {
2026-06-18T12:03:28.9622928Z           "complete": false,
2026-06-18T12:03:28.9623715Z           "evidence": []
2026-06-18T12:03:28.9624450Z         },
2026-06-18T12:03:28.9625082Z         "unit": {
2026-06-18T12:03:28.9625781Z           "complete": true,
2026-06-18T12:03:28.9626558Z           "evidence": [
2026-06-18T12:03:28.9627275Z             {
2026-06-18T12:03:28.9628000Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9628930Z               "line": 7751
2026-06-18T12:03:28.9629764Z             }
2026-06-18T12:03:28.9630411Z           ]
2026-06-18T12:03:28.9631031Z         }
2026-06-18T12:03:28.9631651Z       }
2026-06-18T12:03:28.9632266Z     },
2026-06-18T12:03:28.9632878Z     {
2026-06-18T12:03:28.9633512Z       "id": "REQ-CLI-4",
2026-06-18T12:03:28.9641520Z       "title": "User-facing CLI output is human-readable: DIRECT-USER commands (e.g. adapter update/list/use) render friendly prose instead of raw CODE:RESULT markers — \"claude-spt is up to date (0.2.0).\" not \"ADAPTER_UPDATE_UPTODATE:claude-spt: installed 0.2.0, latest 0.2.0\". Strictly bounded to the direct-user surface: the adapter-PARSED bringup tokens (SEEDED/BOUND/READY/NO_SEED on seed/listen, which adapters grep) stay machine-parseable — humanization is additive (a human line beside the marker, or a --porcelain/--quiet split), never a silent rename of a dual-contract marker. The user-facing bringup composition belongs to the adapter (perri); this REQ owns only the direct-user CLI surface. (v0.9.0)",
2026-06-18T12:03:28.9648859Z       "requiredStages": [],
2026-06-18T12:03:28.9649712Z       "stages": {
2026-06-18T12:03:28.9650394Z         "doc": {
2026-06-18T12:03:28.9651075Z           "complete": false,
2026-06-18T12:03:28.9651860Z           "evidence": []
2026-06-18T12:03:28.9652591Z         },
2026-06-18T12:03:28.9653230Z         "impl": {
2026-06-18T12:03:28.9653929Z           "complete": true,
2026-06-18T12:03:28.9654699Z           "evidence": [
2026-06-18T12:03:28.9655424Z             {
2026-06-18T12:03:28.9656154Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9657066Z               "line": 5517
2026-06-18T12:03:28.9657796Z             }
2026-06-18T12:03:28.9658439Z           ]
2026-06-18T12:03:28.9659158Z         },
2026-06-18T12:03:28.9659780Z         "int": {
2026-06-18T12:03:28.9660485Z           "complete": false,
2026-06-18T12:03:28.9661278Z           "evidence": []
2026-06-18T12:03:28.9662016Z         },
2026-06-18T12:03:28.9662660Z         "unit": {
2026-06-18T12:03:28.9663364Z           "complete": false,
2026-06-18T12:03:28.9664158Z           "evidence": []
2026-06-18T12:03:28.9664883Z         }
2026-06-18T12:03:28.9665493Z       }
2026-06-18T12:03:28.9666108Z     },
2026-06-18T12:03:28.9666715Z     {
2026-06-18T12:03:28.9667361Z       "id": "REQ-CONSENT-1",
2026-06-18T12:03:28.9671394Z       "title": "Consent grant store: capability x subject-agent x target-node rows, enforced at the target node, subnet-settable (replicates as security material near the trust store), revocable; gated-capability ids (remote-exec, instantiate-anywhere) reserved-but-refusing; v1 consumers are the shell spawn gates (CONTEXT Consent & security gates)",
2026-06-18T12:03:28.9675467Z       "requiredStages": [
2026-06-18T12:03:28.9676215Z         "impl",
2026-06-18T12:03:28.9676874Z         "unit"
2026-06-18T12:03:28.9677533Z       ],
2026-06-18T12:03:28.9678153Z       "stages": {
2026-06-18T12:03:28.9678821Z         "doc": {
2026-06-18T12:03:28.9679765Z           "complete": false,
2026-06-18T12:03:28.9680553Z           "evidence": []
2026-06-18T12:03:28.9681277Z         },
2026-06-18T12:03:28.9681906Z         "impl": {
2026-06-18T12:03:28.9682603Z           "complete": true,
2026-06-18T12:03:28.9683361Z           "evidence": [
2026-06-18T12:03:28.9684066Z             {
2026-06-18T12:03:28.9684828Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9685788Z               "line": 27
2026-06-18T12:03:28.9686519Z             },
2026-06-18T12:03:28.9687158Z             {
2026-06-18T12:03:28.9687924Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9688885Z               "line": 75
2026-06-18T12:03:28.9689691Z             },
2026-06-18T12:03:28.9690340Z             {
2026-06-18T12:03:28.9691104Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9692067Z               "line": 98
2026-06-18T12:03:28.9692791Z             },
2026-06-18T12:03:28.9693435Z             {
2026-06-18T12:03:28.9694192Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9695142Z               "line": 82
2026-06-18T12:03:28.9695866Z             },
2026-06-18T12:03:28.9696521Z             {
2026-06-18T12:03:28.9697292Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9698275Z               "line": 109
2026-06-18T12:03:28.9699083Z             },
2026-06-18T12:03:28.9699741Z             {
2026-06-18T12:03:28.9700503Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9701470Z               "line": 127
2026-06-18T12:03:28.9702203Z             },
2026-06-18T12:03:28.9702856Z             {
2026-06-18T12:03:28.9703613Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9704571Z               "line": 142
2026-06-18T12:03:28.9705295Z             },
2026-06-18T12:03:28.9705949Z             {
2026-06-18T12:03:28.9706668Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9707566Z               "line": 6887
2026-06-18T12:03:28.9708302Z             }
2026-06-18T12:03:28.9709030Z           ]
2026-06-18T12:03:28.9709653Z         },
2026-06-18T12:03:28.9710282Z         "int": {
2026-06-18T12:03:28.9710973Z           "complete": false,
2026-06-18T12:03:28.9711756Z           "evidence": []
2026-06-18T12:03:28.9712472Z         },
2026-06-18T12:03:28.9713092Z         "unit": {
2026-06-18T12:03:28.9713778Z           "complete": true,
2026-06-18T12:03:28.9714545Z           "evidence": [
2026-06-18T12:03:28.9715245Z             {
2026-06-18T12:03:28.9716028Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9716986Z               "line": 334
2026-06-18T12:03:28.9717707Z             },
2026-06-18T12:03:28.9718355Z             {
2026-06-18T12:03:28.9719205Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9720157Z               "line": 380
2026-06-18T12:03:28.9720880Z             },
2026-06-18T12:03:28.9721528Z             {
2026-06-18T12:03:28.9722306Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9723274Z               "line": 391
2026-06-18T12:03:28.9723995Z             },
2026-06-18T12:03:28.9724630Z             {
2026-06-18T12:03:28.9725400Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9726350Z               "line": 165
2026-06-18T12:03:28.9727079Z             },
2026-06-18T12:03:28.9727725Z             {
2026-06-18T12:03:28.9728497Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9729532Z               "line": 184
2026-06-18T12:03:28.9730414Z             },
2026-06-18T12:03:28.9731064Z             {
2026-06-18T12:03:28.9731816Z               "path": "crates/spt-store/src/grants.rs",
2026-06-18T12:03:28.9732760Z               "line": 204
2026-06-18T12:03:28.9733486Z             },
2026-06-18T12:03:28.9734125Z             {
2026-06-18T12:03:28.9734851Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9735762Z               "line": 8104
2026-06-18T12:03:28.9736614Z             }
2026-06-18T12:03:28.9737253Z           ]
2026-06-18T12:03:28.9737882Z         }
2026-06-18T12:03:28.9738485Z       }
2026-06-18T12:03:28.9739138Z     },
2026-06-18T12:03:28.9739748Z     {
2026-06-18T12:03:28.9740396Z       "id": "REQ-CONSENT-2",
2026-06-18T12:03:28.9744037Z       "title": "Interactive consent escalation: an ungated high-risk action routes a consent prompt to the user's most-recently-active session; allow-once / allow-always (writes a grant) / deny; pre-consent flags (can_shutdown, shell_wake_spawn_anywhere) author grants via manifest/settings (CONTEXT Consent & security gates)",
2026-06-18T12:03:28.9747608Z       "requiredStages": [
2026-06-18T12:03:28.9748343Z         "impl",
2026-06-18T12:03:28.9749073Z         "unit"
2026-06-18T12:03:28.9749717Z       ],
2026-06-18T12:03:28.9750337Z       "stages": {
2026-06-18T12:03:28.9750995Z         "doc": {
2026-06-18T12:03:28.9751680Z           "complete": false,
2026-06-18T12:03:28.9752466Z           "evidence": []
2026-06-18T12:03:28.9753204Z         },
2026-06-18T12:03:28.9753828Z         "impl": {
2026-06-18T12:03:28.9754507Z           "complete": true,
2026-06-18T12:03:28.9755270Z           "evidence": [
2026-06-18T12:03:28.9755982Z             {
2026-06-18T12:03:28.9756738Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9757701Z               "line": 140
2026-06-18T12:03:28.9758430Z             },
2026-06-18T12:03:28.9759152Z             {
2026-06-18T12:03:28.9759924Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9760892Z               "line": 165
2026-06-18T12:03:28.9761616Z             },
2026-06-18T12:03:28.9762259Z             {
2026-06-18T12:03:28.9763031Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9763994Z               "line": 199
2026-06-18T12:03:28.9764717Z             },
2026-06-18T12:03:28.9765363Z             {
2026-06-18T12:03:28.9766130Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9767104Z               "line": 241
2026-06-18T12:03:28.9767837Z             },
2026-06-18T12:03:28.9768476Z             {
2026-06-18T12:03:28.9769314Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9770283Z               "line": 269
2026-06-18T12:03:28.9771010Z             },
2026-06-18T12:03:28.9771653Z             {
2026-06-18T12:03:28.9772415Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9773385Z               "line": 300
2026-06-18T12:03:28.9774114Z             },
2026-06-18T12:03:28.9774763Z             {
2026-06-18T12:03:28.9775477Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9776395Z               "line": 6678
2026-06-18T12:03:28.9777135Z             },
2026-06-18T12:03:28.9777774Z             {
2026-06-18T12:03:28.9778488Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9779483Z               "line": 6736
2026-06-18T12:03:28.9780213Z             }
2026-06-18T12:03:28.9780858Z           ]
2026-06-18T12:03:28.9781482Z         },
2026-06-18T12:03:28.9782112Z         "int": {
2026-06-18T12:03:28.9782795Z           "complete": false,
2026-06-18T12:03:28.9783583Z           "evidence": []
2026-06-18T12:03:28.9784307Z         },
2026-06-18T12:03:28.9784937Z         "unit": {
2026-06-18T12:03:28.9785618Z           "complete": true,
2026-06-18T12:03:28.9786383Z           "evidence": [
2026-06-18T12:03:28.9787084Z             {
2026-06-18T12:03:28.9787846Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9788933Z               "line": 419
2026-06-18T12:03:28.9789720Z             },
2026-06-18T12:03:28.9790368Z             {
2026-06-18T12:03:28.9791135Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9792087Z               "line": 436
2026-06-18T12:03:28.9792807Z             },
2026-06-18T12:03:28.9793455Z             {
2026-06-18T12:03:28.9794224Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9795191Z               "line": 472
2026-06-18T12:03:28.9796041Z             },
2026-06-18T12:03:28.9796691Z             {
2026-06-18T12:03:28.9797467Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:28.9798431Z               "line": 516
2026-06-18T12:03:28.9799232Z             },
2026-06-18T12:03:28.9799880Z             {
2026-06-18T12:03:28.9800595Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9801491Z               "line": 9384
2026-06-18T12:03:28.9802226Z             },
2026-06-18T12:03:28.9802875Z             {
2026-06-18T12:03:28.9803591Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9804495Z               "line": 9466
2026-06-18T12:03:28.9823065Z             }
2026-06-18T12:03:28.9823772Z           ]
2026-06-18T12:03:28.9824411Z         }
2026-06-18T12:03:28.9825017Z       }
2026-06-18T12:03:28.9825625Z     },
2026-06-18T12:03:28.9826247Z     {
2026-06-18T12:03:28.9826905Z       "id": "REQ-CONSENT-3",
2026-06-18T12:03:28.9833921Z       "title": "Per-capability approval gates (class-keyed): the require_approval enum may ride INDIVIDUAL [shell.capabilities] entries — gating the dangerous ACT, not just the spawn — with an optional class_key scoping the grant qualifier finer than the capability id ((owner endpoint x device class x node); a remembered HID-class attach grant never authorizes a storage-class attach). Reuses the grant store + interactive escalation + tighten-only floor (REQ-CONSENT-1/2 plumbing). Spawn gates govern EXISTENCE; capability gates govern ACTS — an explicitly distinct invariant (CONTEXT:283, ratified 2026-06-11 Gateway grill).",
2026-06-18T12:03:28.9840468Z       "requiredStages": [
2026-06-18T12:03:28.9841214Z         "doc",
2026-06-18T12:03:28.9841867Z         "impl",
2026-06-18T12:03:28.9842525Z         "unit",
2026-06-18T12:03:28.9843178Z         "int"
2026-06-18T12:03:28.9843817Z       ],
2026-06-18T12:03:28.9844439Z       "stages": {
2026-06-18T12:03:28.9845106Z         "doc": {
2026-06-18T12:03:28.9845793Z           "complete": true,
2026-06-18T12:03:28.9846585Z           "evidence": [
2026-06-18T12:03:28.9847287Z             {
2026-06-18T12:03:28.9847968Z               "path": "CONTEXT.md",
2026-06-18T12:03:28.9848809Z               "line": 304
2026-06-18T12:03:28.9849615Z             }
2026-06-18T12:03:28.9850253Z           ]
2026-06-18T12:03:28.9850883Z         },
2026-06-18T12:03:28.9851499Z         "impl": {
2026-06-18T12:03:28.9852194Z           "complete": true,
2026-06-18T12:03:28.9852958Z           "evidence": [
2026-06-18T12:03:28.9853676Z             {
2026-06-18T12:03:28.9854477Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:28.9855472Z               "line": 123
2026-06-18T12:03:28.9856196Z             },
2026-06-18T12:03:28.9856858Z             {
2026-06-18T12:03:28.9857641Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:28.9858629Z               "line": 162
2026-06-18T12:03:28.9859463Z             },
2026-06-18T12:03:28.9860114Z             {
2026-06-18T12:03:28.9860911Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:28.9861897Z               "line": 291
2026-06-18T12:03:28.9862621Z             },
2026-06-18T12:03:28.9863279Z             {
2026-06-18T12:03:28.9864056Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:28.9865042Z               "line": 530
2026-06-18T12:03:28.9865765Z             },
2026-06-18T12:03:28.9866395Z             {
2026-06-18T12:03:28.9867194Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:28.9868407Z               "line": 780
2026-06-18T12:03:28.9869213Z             },
2026-06-18T12:03:28.9869863Z             {
2026-06-18T12:03:28.9870584Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:28.9871499Z               "line": 6804
2026-06-18T12:03:28.9872223Z             }
2026-06-18T12:03:28.9872862Z           ]
2026-06-18T12:03:28.9873492Z         },
2026-06-18T12:03:28.9874111Z         "int": {
2026-06-18T12:03:28.9874792Z           "complete": true,
2026-06-18T12:03:28.9875673Z           "evidence": [
2026-06-18T12:03:28.9876382Z             {
2026-06-18T12:03:28.9877178Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-18T12:03:28.9878161Z               "line": 16
2026-06-18T12:03:28.9878882Z             }
2026-06-18T12:03:28.9879653Z           ]
2026-06-18T12:03:28.9939895Z         },
2026-06-18T12:03:28.9940677Z         "unit": {
2026-06-18T12:03:28.9941407Z           "complete": true,
2026-06-18T12:03:28.9942185Z           "evidence": [
2026-06-18T12:03:28.9942924Z             {
2026-06-18T12:03:28.9943707Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:28.9944704Z               "line": 1019
2026-06-18T12:03:28.9945430Z             },
2026-06-18T12:03:28.9946078Z             {
2026-06-18T12:03:28.9946850Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:28.9947831Z               "line": 1066
2026-06-18T12:03:28.9948566Z             },
2026-06-18T12:03:28.9949376Z             {
2026-06-18T12:03:28.9950174Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:28.9951152Z               "line": 1191
2026-06-18T12:03:28.9951886Z             }
2026-06-18T12:03:28.9952513Z           ]
2026-06-18T12:03:28.9953128Z         }
2026-06-18T12:03:28.9953743Z       }
2026-06-18T12:03:28.9954339Z     },
2026-06-18T12:03:28.9954942Z     {
2026-06-18T12:03:28.9955589Z       "id": "REQ-CONV-1",
2026-06-18T12:03:28.9960821Z       "title": "Peer address seeding, both cold starts: durable peer-addrs.json (identity dir) maps peer pubkey → last-known dialable address; the pump's resolver consults it FIRST with id-only discovery fallback on miss or dial failure (a stale addr never strands a peer); written by the pairing ceremony (both sides, from the live connection) and by the pump on successful connect; post-join first sync and post-restart resync converge in seconds, not ~1 min (M8 decisions 14, 20)",
2026-06-18T12:03:28.9965753Z       "requiredStages": [
2026-06-18T12:03:28.9966507Z         "impl",
2026-06-18T12:03:28.9967166Z         "unit"
2026-06-18T12:03:28.9967819Z       ],
2026-06-18T12:03:28.9968442Z       "stages": {
2026-06-18T12:03:28.9969171Z         "doc": {
2026-06-18T12:03:28.9969872Z           "complete": false,
2026-06-18T12:03:28.9970657Z           "evidence": []
2026-06-18T12:03:28.9971376Z         },
2026-06-18T12:03:28.9972000Z         "impl": {
2026-06-18T12:03:28.9972691Z           "complete": true,
2026-06-18T12:03:28.9973453Z           "evidence": [
2026-06-18T12:03:28.9974152Z             {
2026-06-18T12:03:28.9974958Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:28.9975935Z               "line": 938
2026-06-18T12:03:28.9976661Z             },
2026-06-18T12:03:28.9977304Z             {
2026-06-18T12:03:28.9978083Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:28.9979122Z               "line": 94
2026-06-18T12:03:28.9979855Z             },
2026-06-18T12:03:28.9980503Z             {
2026-06-18T12:03:28.9981299Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:28.9982308Z               "line": 345
2026-06-18T12:03:28.9983022Z             },
2026-06-18T12:03:28.9983676Z             {
2026-06-18T12:03:28.9984460Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:28.9985428Z               "line": 387
2026-06-18T12:03:28.9986152Z             },
2026-06-18T12:03:28.9986802Z             {
2026-06-18T12:03:28.9987579Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:28.9988790Z               "line": 472
2026-06-18T12:03:28.9989810Z             },
2026-06-18T12:03:28.9990449Z             {
2026-06-18T12:03:28.9991212Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:28.9992177Z               "line": 667
2026-06-18T12:03:28.9992901Z             },
2026-06-18T12:03:28.9993540Z             {
2026-06-18T12:03:28.9994299Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:28.9995406Z               "line": 693
2026-06-18T12:03:28.9996140Z             },
2026-06-18T12:03:28.9996779Z             {
2026-06-18T12:03:28.9997558Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:28.9998531Z               "line": 369
2026-06-18T12:03:28.9999332Z             },
2026-06-18T12:03:28.9999983Z             {
2026-06-18T12:03:29.0000761Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T12:03:29.0001730Z               "line": 19
2026-06-18T12:03:29.0002461Z             }
2026-06-18T12:03:29.0003109Z           ]
2026-06-18T12:03:29.0003723Z         },
2026-06-18T12:03:29.0004349Z         "int": {
2026-06-18T12:03:29.0005034Z           "complete": false,
2026-06-18T12:03:29.0005813Z           "evidence": []
2026-06-18T12:03:29.0006534Z         },
2026-06-18T12:03:29.0007164Z         "unit": {
2026-06-18T12:03:29.0007848Z           "complete": true,
2026-06-18T12:03:29.0008613Z           "evidence": [
2026-06-18T12:03:29.0009367Z             {
2026-06-18T12:03:29.0010153Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0011121Z               "line": 1263
2026-06-18T12:03:29.0011845Z             },
2026-06-18T12:03:29.0012485Z             {
2026-06-18T12:03:29.0013258Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T12:03:29.0014222Z               "line": 108
2026-06-18T12:03:29.0014956Z             },
2026-06-18T12:03:29.0015595Z             {
2026-06-18T12:03:29.0016373Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T12:03:29.0017351Z               "line": 134
2026-06-18T12:03:29.0018072Z             },
2026-06-18T12:03:29.0018717Z             {
2026-06-18T12:03:29.0019569Z               "path": "crates/spt-store/src/peeraddrs.rs",
2026-06-18T12:03:29.0020523Z               "line": 144
2026-06-18T12:03:29.0021238Z             }
2026-06-18T12:03:29.0021873Z           ]
2026-06-18T12:03:29.0022492Z         }
2026-06-18T12:03:29.0023097Z       }
2026-06-18T12:03:29.0023708Z     },
2026-06-18T12:03:29.0024333Z     {
2026-06-18T12:03:29.0024958Z       "id": "REQ-CONV-2",
2026-06-18T12:03:29.0029080Z       "title": "Event-driven advertisement: endpoint online/offline transitions (ready-listener start/stop, rest-state transition, perch death) trigger an immediate advertise_local + peer push as a WAKE of the existing pump loop (no second advertisement path — epoch lease + visibility gates ride unchanged); the cadence stays the steady-state floor (M8 decision 15)",
2026-06-18T12:03:29.0033008Z       "requiredStages": [
2026-06-18T12:03:29.0033758Z         "impl",
2026-06-18T12:03:29.0034418Z         "unit"
2026-06-18T12:03:29.0035061Z       ],
2026-06-18T12:03:29.0035671Z       "stages": {
2026-06-18T12:03:29.0036334Z         "doc": {
2026-06-18T12:03:29.0036654Z           "complete": false,
2026-06-18T12:03:29.0036957Z           "evidence": []
2026-06-18T12:03:29.0037246Z         },
2026-06-18T12:03:29.0037542Z         "impl": {
2026-06-18T12:03:29.0037862Z           "complete": true,
2026-06-18T12:03:29.0038186Z           "evidence": [
2026-06-18T12:03:29.0038476Z             {
2026-06-18T12:03:29.0038915Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0039314Z               "line": 409
2026-06-18T12:03:29.0039603Z             },
2026-06-18T12:03:29.0039895Z             {
2026-06-18T12:03:29.0040341Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.0040651Z               "line": 119
2026-06-18T12:03:29.0040938Z             },
2026-06-18T12:03:29.0041229Z             {
2026-06-18T12:03:29.0041811Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.0042126Z               "line": 841
2026-06-18T12:03:29.0042411Z             },
2026-06-18T12:03:29.0042702Z             {
2026-06-18T12:03:29.0043159Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.0043460Z               "line": 852
2026-06-18T12:03:29.0043755Z             },
2026-06-18T12:03:29.0044032Z             {
2026-06-18T12:03:29.0044564Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.0044877Z               "line": 334
2026-06-18T12:03:29.0045157Z             },
2026-06-18T12:03:29.0045449Z             {
2026-06-18T12:03:29.0045811Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0046126Z               "line": 2945
2026-06-18T12:03:29.0046412Z             },
2026-06-18T12:03:29.0046703Z             {
2026-06-18T12:03:29.0047070Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0047383Z               "line": 2961
2026-06-18T12:03:29.0047677Z             },
2026-06-18T12:03:29.0047963Z             {
2026-06-18T12:03:29.0048330Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0048631Z               "line": 3028
2026-06-18T12:03:29.0048922Z             }
2026-06-18T12:03:29.0049308Z           ]
2026-06-18T12:03:29.0049599Z         },
2026-06-18T12:03:29.0049889Z         "int": {
2026-06-18T12:03:29.0050206Z           "complete": false,
2026-06-18T12:03:29.0050535Z           "evidence": []
2026-06-18T12:03:29.0050821Z         },
2026-06-18T12:03:29.0051117Z         "unit": {
2026-06-18T12:03:29.0051431Z           "complete": true,
2026-06-18T12:03:29.0051727Z           "evidence": [
2026-06-18T12:03:29.0052018Z             {
2026-06-18T12:03:29.0052447Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0052760Z               "line": 889
2026-06-18T12:03:29.0053047Z             },
2026-06-18T12:03:29.0053333Z             {
2026-06-18T12:03:29.0053752Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0054071Z               "line": 1014
2026-06-18T12:03:29.0054368Z             },
2026-06-18T12:03:29.0054648Z             {
2026-06-18T12:03:29.0055105Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.0055422Z               "line": 215
2026-06-18T12:03:29.0055713Z             }
2026-06-18T12:03:29.0056009Z           ]
2026-06-18T12:03:29.0056290Z         }
2026-06-18T12:03:29.0056577Z       }
2026-06-18T12:03:29.0056858Z     },
2026-06-18T12:03:29.0057140Z     {
2026-06-18T12:03:29.0057459Z       "id": "REQ-DAEMON-1",
2026-06-18T12:03:29.0058035Z       "title": "One per-machine spt-daemon owning all per-machine state",
2026-06-18T12:03:29.0058366Z       "requiredStages": [
2026-06-18T12:03:29.0058657Z         "impl",
2026-06-18T12:03:29.0058997Z         "unit",
2026-06-18T12:03:29.0059282Z         "int"
2026-06-18T12:03:29.0059572Z       ],
2026-06-18T12:03:29.0059863Z       "stages": {
2026-06-18T12:03:29.0060164Z         "doc": {
2026-06-18T12:03:29.0060487Z           "complete": false,
2026-06-18T12:03:29.0060799Z           "evidence": []
2026-06-18T12:03:29.0061086Z         },
2026-06-18T12:03:29.0061367Z         "impl": {
2026-06-18T12:03:29.0061682Z           "complete": true,
2026-06-18T12:03:29.0061987Z           "evidence": [
2026-06-18T12:03:29.0062278Z             {
2026-06-18T12:03:29.0062711Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0063022Z               "line": 229
2026-06-18T12:03:29.0063307Z             },
2026-06-18T12:03:29.0063598Z             {
2026-06-18T12:03:29.0064016Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.0064321Z               "line": 12
2026-06-18T12:03:29.0064618Z             },
2026-06-18T12:03:29.0064904Z             {
2026-06-18T12:03:29.0065329Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0065637Z               "line": 16
2026-06-18T12:03:29.0065921Z             },
2026-06-18T12:03:29.0066336Z             {
2026-06-18T12:03:29.0066774Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0067080Z               "line": 309
2026-06-18T12:03:29.0067371Z             },
2026-06-18T12:03:29.0067648Z             {
2026-06-18T12:03:29.0068076Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0068377Z               "line": 24
2026-06-18T12:03:29.0068675Z             },
2026-06-18T12:03:29.0069159Z             {
2026-06-18T12:03:29.0069595Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0069910Z               "line": 262
2026-06-18T12:03:29.0070196Z             },
2026-06-18T12:03:29.0070482Z             {
2026-06-18T12:03:29.0070901Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0071214Z               "line": 279
2026-06-18T12:03:29.0071517Z             },
2026-06-18T12:03:29.0071794Z             {
2026-06-18T12:03:29.0072256Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0072632Z               "line": 356
2026-06-18T12:03:29.0072990Z             },
2026-06-18T12:03:29.0073305Z             {
2026-06-18T12:03:29.0073891Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0074234Z               "line": 658
2026-06-18T12:03:29.0074595Z             },
2026-06-18T12:03:29.0074915Z             {
2026-06-18T12:03:29.0075364Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-18T12:03:29.0075764Z               "line": 15
2026-06-18T12:03:29.0076135Z             },
2026-06-18T12:03:29.0076495Z             {
2026-06-18T12:03:29.0076915Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.0077273Z               "line": 229
2026-06-18T12:03:29.0077621Z             },
2026-06-18T12:03:29.0078002Z             {
2026-06-18T12:03:29.0078407Z               "path": "crates/spt/src/api/live.rs",
2026-06-18T12:03:29.0078780Z               "line": 13
2026-06-18T12:03:29.0079217Z             },
2026-06-18T12:03:29.0079662Z             {
2026-06-18T12:03:29.0080150Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.0080479Z               "line": 358
2026-06-18T12:03:29.0080841Z             },
2026-06-18T12:03:29.0081174Z             {
2026-06-18T12:03:29.0081640Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.0082039Z               "line": 463
2026-06-18T12:03:29.0082359Z             }
2026-06-18T12:03:29.0082726Z           ]
2026-06-18T12:03:29.0083041Z         },
2026-06-18T12:03:29.0083421Z         "int": {
2026-06-18T12:03:29.0083831Z           "complete": true,
2026-06-18T12:03:29.0084166Z           "evidence": [
2026-06-18T12:03:29.0084517Z             {
2026-06-18T12:03:29.0085137Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-18T12:03:29.0085528Z               "line": 2
2026-06-18T12:03:29.0085873Z             },
2026-06-18T12:03:29.0086225Z             {
2026-06-18T12:03:29.0086867Z               "path": "crates/spt-daemon/tests/daemon_lifecycle_real_brain.rs",
2026-06-18T12:03:29.0087209Z               "line": 16
2026-06-18T12:03:29.0087590Z             },
2026-06-18T12:03:29.0087928Z             {
2026-06-18T12:03:29.0088477Z               "path": "crates/spt/tests/live_bind_firsthost_e2e.rs",
2026-06-18T12:03:29.0088844Z               "line": 12
2026-06-18T12:03:29.0089239Z             },
2026-06-18T12:03:29.0089634Z             {
2026-06-18T12:03:29.0090123Z               "path": "crates/spt/tests/live_firsthost_e2e.rs",
2026-06-18T12:03:29.0090486Z               "line": 12
2026-06-18T12:03:29.0090801Z             },
2026-06-18T12:03:29.0091149Z             {
2026-06-18T12:03:29.0091712Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T12:03:29.0092064Z               "line": 44
2026-06-18T12:03:29.0092404Z             }
2026-06-18T12:03:29.0092715Z           ]
2026-06-18T12:03:29.0093076Z         },
2026-06-18T12:03:29.0093452Z         "unit": {
2026-06-18T12:03:29.0093935Z           "complete": true,
2026-06-18T12:03:29.0094301Z           "evidence": [
2026-06-18T12:03:29.0094616Z             {
2026-06-18T12:03:29.0095116Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.0095440Z               "line": 285
2026-06-18T12:03:29.0095841Z             },
2026-06-18T12:03:29.0096193Z             {
2026-06-18T12:03:29.0096646Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.0097133Z               "line": 293
2026-06-18T12:03:29.0097446Z             },
2026-06-18T12:03:29.0097868Z             {
2026-06-18T12:03:29.0098302Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.0098699Z               "line": 309
2026-06-18T12:03:29.0099108Z             },
2026-06-18T12:03:29.0099404Z             {
2026-06-18T12:03:29.0099949Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.0100304Z               "line": 317
2026-06-18T12:03:29.0100655Z             },
2026-06-18T12:03:29.0101012Z             {
2026-06-18T12:03:29.0101445Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0101862Z               "line": 659
2026-06-18T12:03:29.0102205Z             },
2026-06-18T12:03:29.0102558Z             {
2026-06-18T12:03:29.0103016Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0103373Z               "line": 729
2026-06-18T12:03:29.0103794Z             },
2026-06-18T12:03:29.0104123Z             {
2026-06-18T12:03:29.0104614Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0104952Z               "line": 1151
2026-06-18T12:03:29.0105290Z             },
2026-06-18T12:03:29.0105709Z             {
2026-06-18T12:03:29.0106168Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0106543Z               "line": 1188
2026-06-18T12:03:29.0106862Z             },
2026-06-18T12:03:29.0107192Z             {
2026-06-18T12:03:29.0107689Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0108109Z               "line": 1211
2026-06-18T12:03:29.0108462Z             },
2026-06-18T12:03:29.0108781Z             {
2026-06-18T12:03:29.0109316Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0109720Z               "line": 1240
2026-06-18T12:03:29.0110093Z             },
2026-06-18T12:03:29.0110403Z             {
2026-06-18T12:03:29.0110892Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0111258Z               "line": 1288
2026-06-18T12:03:29.0111634Z             },
2026-06-18T12:03:29.0111992Z             {
2026-06-18T12:03:29.0112446Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0112818Z               "line": 1331
2026-06-18T12:03:29.0113165Z             },
2026-06-18T12:03:29.0113515Z             {
2026-06-18T12:03:29.0114000Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-18T12:03:29.0114335Z               "line": 106
2026-06-18T12:03:29.0114688Z             },
2026-06-18T12:03:29.0115012Z             {
2026-06-18T12:03:29.0115503Z               "path": "crates/spt-daemon/src/relay.rs",
2026-06-18T12:03:29.0115880Z               "line": 132
2026-06-18T12:03:29.0116198Z             },
2026-06-18T12:03:29.0116555Z             {
2026-06-18T12:03:29.0116990Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.0117371Z               "line": 504
2026-06-18T12:03:29.0117743Z             }
2026-06-18T12:03:29.0118057Z           ]
2026-06-18T12:03:29.0118419Z         }
2026-06-18T12:03:29.0118727Z       }
2026-06-18T12:03:29.0119170Z     },
2026-06-18T12:03:29.0119510Z     {
2026-06-18T12:03:29.0119895Z       "id": "REQ-DAEMON-2",
2026-06-18T12:03:29.0120410Z       "title": "Broker/brain split for seamless self-update",
2026-06-18T12:03:29.0120806Z       "requiredStages": [
2026-06-18T12:03:29.0121172Z         "impl",
2026-06-18T12:03:29.0121504Z         "unit",
2026-06-18T12:03:29.0121856Z         "int"
2026-06-18T12:03:29.0122180Z       ],
2026-06-18T12:03:29.0122652Z       "stages": {
2026-06-18T12:03:29.0123030Z         "doc": {
2026-06-18T12:03:29.0123392Z           "complete": true,
2026-06-18T12:03:29.0123772Z           "evidence": [
2026-06-18T12:03:29.0124089Z             {
2026-06-18T12:03:29.0124537Z               "path": "docs/TWO-HOST-RUNBOOK.md",
2026-06-18T12:03:29.0124847Z               "line": 250
2026-06-18T12:03:29.0125253Z             }
2026-06-18T12:03:29.0125606Z           ]
2026-06-18T12:03:29.0126039Z         },
2026-06-18T12:03:29.0126392Z         "impl": {
2026-06-18T12:03:29.0126724Z           "complete": true,
2026-06-18T12:03:29.0127159Z           "evidence": [
2026-06-18T12:03:29.0127469Z             {
2026-06-18T12:03:29.0127936Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0128289Z               "line": 23
2026-06-18T12:03:29.0128588Z             },
2026-06-18T12:03:29.0129088Z             {
2026-06-18T12:03:29.0129540Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0129920Z               "line": 796
2026-06-18T12:03:29.0130268Z             },
2026-06-18T12:03:29.0130564Z             {
2026-06-18T12:03:29.0131098Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0131436Z               "line": 821
2026-06-18T12:03:29.0131784Z             },
2026-06-18T12:03:29.0132111Z             {
2026-06-18T12:03:29.0132554Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0132998Z               "line": 1057
2026-06-18T12:03:29.0133322Z             },
2026-06-18T12:03:29.0133665Z             {
2026-06-18T12:03:29.0134109Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0134484Z               "line": 32
2026-06-18T12:03:29.0134873Z             },
2026-06-18T12:03:29.0135193Z             {
2026-06-18T12:03:29.0135659Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0136003Z               "line": 550
2026-06-18T12:03:29.0136356Z             },
2026-06-18T12:03:29.0136705Z             {
2026-06-18T12:03:29.0137185Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0137557Z               "line": 1130
2026-06-18T12:03:29.0137871Z             },
2026-06-18T12:03:29.0138219Z             {
2026-06-18T12:03:29.0138692Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0139163Z               "line": 1417
2026-06-18T12:03:29.0139473Z             },
2026-06-18T12:03:29.0139832Z             {
2026-06-18T12:03:29.0140295Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T12:03:29.0140663Z               "line": 11
2026-06-18T12:03:29.0141029Z             },
2026-06-18T12:03:29.0141339Z             {
2026-06-18T12:03:29.0141826Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0142175Z               "line": 148
2026-06-18T12:03:29.0142525Z             },
2026-06-18T12:03:29.0142882Z             {
2026-06-18T12:03:29.0143319Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0143705Z               "line": 338
2026-06-18T12:03:29.0144025Z             },
2026-06-18T12:03:29.0144398Z             {
2026-06-18T12:03:29.0144869Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0145200Z               "line": 13
2026-06-18T12:03:29.0145562Z             },
2026-06-18T12:03:29.0145881Z             {
2026-06-18T12:03:29.0146393Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0146782Z               "line": 27
2026-06-18T12:03:29.0147102Z             },
2026-06-18T12:03:29.0147435Z             {
2026-06-18T12:03:29.0147940Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0148488Z               "line": 147
2026-06-18T12:03:29.0149047Z             },
2026-06-18T12:03:29.0149452Z             {
2026-06-18T12:03:29.0149943Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0150280Z               "line": 632
2026-06-18T12:03:29.0150669Z             },
2026-06-18T12:03:29.0151152Z             {
2026-06-18T12:03:29.0151628Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0151971Z               "line": 853
2026-06-18T12:03:29.0152357Z             },
2026-06-18T12:03:29.0152730Z             {
2026-06-18T12:03:29.0153212Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0153579Z               "line": 1000
2026-06-18T12:03:29.0153898Z             },
2026-06-18T12:03:29.0154246Z             {
2026-06-18T12:03:29.0154880Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0155229Z               "line": 1089
2026-06-18T12:03:29.0155580Z             },
2026-06-18T12:03:29.0155902Z             {
2026-06-18T12:03:29.0156380Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0156724Z               "line": 1211
2026-06-18T12:03:29.0157133Z             },
2026-06-18T12:03:29.0157477Z             {
2026-06-18T12:03:29.0157940Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T12:03:29.0158329Z               "line": 10
2026-06-18T12:03:29.0158634Z             }
2026-06-18T12:03:29.0159121Z           ]
2026-06-18T12:03:29.0159440Z         },
2026-06-18T12:03:29.0159823Z         "int": {
2026-06-18T12:03:29.0160212Z           "complete": true,
2026-06-18T12:03:29.0160527Z           "evidence": [
2026-06-18T12:03:29.0160924Z             {
2026-06-18T12:03:29.0161377Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T12:03:29.0161759Z               "line": 17
2026-06-18T12:03:29.0162126Z             },
2026-06-18T12:03:29.0162426Z             {
2026-06-18T12:03:29.0162985Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T12:03:29.0163310Z               "line": 90
2026-06-18T12:03:29.0163655Z             },
2026-06-18T12:03:29.0163992Z             {
2026-06-18T12:03:29.0164482Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T12:03:29.0164908Z               "line": 110
2026-06-18T12:03:29.0165223Z             },
2026-06-18T12:03:29.0165590Z             {
2026-06-18T12:03:29.0166065Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T12:03:29.0166415Z               "line": 186
2026-06-18T12:03:29.0166806Z             },
2026-06-18T12:03:29.0167126Z             {
2026-06-18T12:03:29.0167641Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T12:03:29.0167975Z               "line": 309
2026-06-18T12:03:29.0168313Z             },
2026-06-18T12:03:29.0168681Z             {
2026-06-18T12:03:29.0169275Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-18T12:03:29.0169676Z               "line": 128
2026-06-18T12:03:29.0169991Z             },
2026-06-18T12:03:29.0170325Z             {
2026-06-18T12:03:29.0170810Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-18T12:03:29.0171187Z               "line": 59
2026-06-18T12:03:29.0171513Z             }
2026-06-18T12:03:29.0171861Z           ]
2026-06-18T12:03:29.0172189Z         },
2026-06-18T12:03:29.0172548Z         "unit": {
2026-06-18T12:03:29.0172954Z           "complete": true,
2026-06-18T12:03:29.0173278Z           "evidence": [
2026-06-18T12:03:29.0173626Z             {
2026-06-18T12:03:29.0174063Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T12:03:29.0174456Z               "line": 62
2026-06-18T12:03:29.0174839Z             },
2026-06-18T12:03:29.0175149Z             {
2026-06-18T12:03:29.0175601Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T12:03:29.0175934Z               "line": 76
2026-06-18T12:03:29.0176312Z             },
2026-06-18T12:03:29.0176696Z             {
2026-06-18T12:03:29.0177124Z               "path": "crates/spt-daemon/src/codec.rs",
2026-06-18T12:03:29.0177477Z               "line": 88
2026-06-18T12:03:29.0177791Z             },
2026-06-18T12:03:29.0178162Z             {
2026-06-18T12:03:29.0178635Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T12:03:29.0179107Z               "line": 294
2026-06-18T12:03:29.0179577Z             },
2026-06-18T12:03:29.0179883Z             {
2026-06-18T12:03:29.0180369Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0180708Z               "line": 825
2026-06-18T12:03:29.0181051Z             },
2026-06-18T12:03:29.0181394Z             {
2026-06-18T12:03:29.0181808Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0182202Z               "line": 833
2026-06-18T12:03:29.0182521Z             },
2026-06-18T12:03:29.0182993Z             {
2026-06-18T12:03:29.0183403Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0183776Z               "line": 850
2026-06-18T12:03:29.0184153Z             },
2026-06-18T12:03:29.0184478Z             {
2026-06-18T12:03:29.0184921Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0185255Z               "line": 926
2026-06-18T12:03:29.0185612Z             },
2026-06-18T12:03:29.0185975Z             {
2026-06-18T12:03:29.0186428Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0186809Z               "line": 1282
2026-06-18T12:03:29.0187138Z             },
2026-06-18T12:03:29.0187483Z             {
2026-06-18T12:03:29.0187893Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0188309Z               "line": 1294
2026-06-18T12:03:29.0188661Z             },
2026-06-18T12:03:29.0189066Z             {
2026-06-18T12:03:29.0189554Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T12:03:29.0189878Z               "line": 110
2026-06-18T12:03:29.0190277Z             },
2026-06-18T12:03:29.0190578Z             {
2026-06-18T12:03:29.0191067Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T12:03:29.0191435Z               "line": 144
2026-06-18T12:03:29.0191731Z             }
2026-06-18T12:03:29.0192123Z           ]
2026-06-18T12:03:29.0192435Z         }
2026-06-18T12:03:29.0192791Z       }
2026-06-18T12:03:29.0193101Z     },
2026-06-18T12:03:29.0193421Z     {
2026-06-18T12:03:29.0193859Z       "id": "REQ-DAEMON-3",
2026-06-18T12:03:29.0194436Z       "title": "Any api invocation auto-starts the daemon if absent",
2026-06-18T12:03:29.0194812Z       "requiredStages": [
2026-06-18T12:03:29.0195131Z         "impl",
2026-06-18T12:03:29.0195467Z         "unit",
2026-06-18T12:03:29.0195858Z         "int"
2026-06-18T12:03:29.0196187Z       ],
2026-06-18T12:03:29.0196545Z       "stages": {
2026-06-18T12:03:29.0196854Z         "doc": {
2026-06-18T12:03:29.0197208Z           "complete": false,
2026-06-18T12:03:29.0203943Z           "evidence": []
2026-06-18T12:03:29.0204267Z         },
2026-06-18T12:03:29.0204625Z         "impl": {
2026-06-18T12:03:29.0204940Z           "complete": true,
2026-06-18T12:03:29.0205240Z           "evidence": [
2026-06-18T12:03:29.0205526Z             {
2026-06-18T12:03:29.0205939Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0206252Z               "line": 14
2026-06-18T12:03:29.0206538Z             },
2026-06-18T12:03:29.0206848Z             {
2026-06-18T12:03:29.0207281Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T12:03:29.0207577Z               "line": 11
2026-06-18T12:03:29.0207859Z             },
2026-06-18T12:03:29.0208136Z             {
2026-06-18T12:03:29.0208510Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.0208819Z               "line": 305
2026-06-18T12:03:29.0209195Z             },
2026-06-18T12:03:29.0209491Z             {
2026-06-18T12:03:29.0209862Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0210173Z               "line": 1844
2026-06-18T12:03:29.0210444Z             },
2026-06-18T12:03:29.0210731Z             {
2026-06-18T12:03:29.0211078Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0211378Z               "line": 4093
2026-06-18T12:03:29.0211664Z             },
2026-06-18T12:03:29.0211951Z             {
2026-06-18T12:03:29.0212308Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0212609Z               "line": 4114
2026-06-18T12:03:29.0213046Z             }
2026-06-18T12:03:29.0213328Z           ]
2026-06-18T12:03:29.0213608Z         },
2026-06-18T12:03:29.0213892Z         "int": {
2026-06-18T12:03:29.0214212Z           "complete": true,
2026-06-18T12:03:29.0214517Z           "evidence": [
2026-06-18T12:03:29.0214798Z             {
2026-06-18T12:03:29.0215213Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:29.0215509Z               "line": 49
2026-06-18T12:03:29.0215899Z             },
2026-06-18T12:03:29.0216191Z             {
2026-06-18T12:03:29.0216592Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:29.0216888Z               "line": 487
2026-06-18T12:03:29.0217160Z             }
2026-06-18T12:03:29.0217442Z           ]
2026-06-18T12:03:29.0217723Z         },
2026-06-18T12:03:29.0218009Z         "unit": {
2026-06-18T12:03:29.0218324Z           "complete": true,
2026-06-18T12:03:29.0218624Z           "evidence": [
2026-06-18T12:03:29.0218904Z             {
2026-06-18T12:03:29.0219374Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0219670Z               "line": 831
2026-06-18T12:03:29.0219961Z             },
2026-06-18T12:03:29.0220242Z             {
2026-06-18T12:03:29.0220600Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0220910Z               "line": 10468
2026-06-18T12:03:29.0221196Z             }
2026-06-18T12:03:29.0221467Z           ]
2026-06-18T12:03:29.0221761Z         }
2026-06-18T12:03:29.0222038Z       }
2026-06-18T12:03:29.0222310Z     },
2026-06-18T12:03:29.0222586Z     {
2026-06-18T12:03:29.0222901Z       "id": "REQ-DAEMON-4",
2026-06-18T12:03:29.0223311Z       "title": "Honor every KNOWN-HAZARDS invariant",
2026-06-18T12:03:29.0223625Z       "requiredStages": [
2026-06-18T12:03:29.0223916Z         "impl",
2026-06-18T12:03:29.0224205Z         "unit",
2026-06-18T12:03:29.0224481Z         "int"
2026-06-18T12:03:29.0224758Z       ],
2026-06-18T12:03:29.0225048Z       "stages": {
2026-06-18T12:03:29.0225349Z         "doc": {
2026-06-18T12:03:29.0225673Z           "complete": false,
2026-06-18T12:03:29.0225988Z           "evidence": []
2026-06-18T12:03:29.0226268Z         },
2026-06-18T12:03:29.0226565Z         "impl": {
2026-06-18T12:03:29.0226878Z           "complete": true,
2026-06-18T12:03:29.0227181Z           "evidence": [
2026-06-18T12:03:29.0227462Z             {
2026-06-18T12:03:29.0227886Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0228201Z               "line": 464
2026-06-18T12:03:29.0228492Z             },
2026-06-18T12:03:29.0228764Z             {
2026-06-18T12:03:29.0229285Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0229588Z               "line": 529
2026-06-18T12:03:29.0229872Z             },
2026-06-18T12:03:29.0230157Z             {
2026-06-18T12:03:29.0230573Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0230883Z               "line": 551
2026-06-18T12:03:29.0231170Z             }
2026-06-18T12:03:29.0231451Z           ]
2026-06-18T12:03:29.0231736Z         },
2026-06-18T12:03:29.0232032Z         "int": {
2026-06-18T12:03:29.0232345Z           "complete": true,
2026-06-18T12:03:29.0232645Z           "evidence": [
2026-06-18T12:03:29.0232936Z             {
2026-06-18T12:03:29.0233376Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-18T12:03:29.0233671Z               "line": 42
2026-06-18T12:03:29.0233952Z             }
2026-06-18T12:03:29.0234252Z           ]
2026-06-18T12:03:29.0234533Z         },
2026-06-18T12:03:29.0234826Z         "unit": {
2026-06-18T12:03:29.0235136Z           "complete": true,
2026-06-18T12:03:29.0235432Z           "evidence": [
2026-06-18T12:03:29.0235718Z             {
2026-06-18T12:03:29.0236123Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.0236428Z               "line": 428
2026-06-18T12:03:29.0236714Z             },
2026-06-18T12:03:29.0237005Z             {
2026-06-18T12:03:29.0237433Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0237880Z               "line": 957
2026-06-18T12:03:29.0238160Z             },
2026-06-18T12:03:29.0238446Z             {
2026-06-18T12:03:29.0238876Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0239257Z               "line": 1027
2026-06-18T12:03:29.0239568Z             },
2026-06-18T12:03:29.0239854Z             {
2026-06-18T12:03:29.0240265Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0240684Z               "line": 1057
2026-06-18T12:03:29.0240975Z             },
2026-06-18T12:03:29.0241261Z             {
2026-06-18T12:03:29.0241691Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.0242001Z               "line": 1090
2026-06-18T12:03:29.0242292Z             }
2026-06-18T12:03:29.0242563Z           ]
2026-06-18T12:03:29.0242839Z         }
2026-06-18T12:03:29.0243126Z       }
2026-06-18T12:03:29.0243411Z     },
2026-06-18T12:03:29.0243688Z     {
2026-06-18T12:03:29.0244008Z       "id": "REQ-DAEMON-5",
2026-06-18T12:03:29.0248343Z       "title": "Pump liveness: the peer pump writes a last-tick heartbeat consumed by daemon status / subnet status (decision 23 render legs in REQ-CLI-2/REQ-SUBNET-8); the daemon supervises the pump task — a panic is caught, logged loudly, and the pump restarts with capped backoff (≤5 min), so a 5.9-class death self-heals visibly instead of silently halving the daemon (M8 decision 23; field motivation: hfenduleam 2026-06-07 half-death)",
2026-06-18T12:03:29.0248687Z       "requiredStages": [
2026-06-18T12:03:29.0249080Z         "impl",
2026-06-18T12:03:29.0249360Z         "unit"
2026-06-18T12:03:29.0249655Z       ],
2026-06-18T12:03:29.0249951Z       "stages": {
2026-06-18T12:03:29.0250233Z         "doc": {
2026-06-18T12:03:29.0250560Z           "complete": false,
2026-06-18T12:03:29.0250868Z           "evidence": []
2026-06-18T12:03:29.0251159Z         },
2026-06-18T12:03:29.0251455Z         "impl": {
2026-06-18T12:03:29.0251793Z           "complete": true,
2026-06-18T12:03:29.0252098Z           "evidence": [
2026-06-18T12:03:29.0252389Z             {
2026-06-18T12:03:29.0252823Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0253128Z               "line": 476
2026-06-18T12:03:29.0253413Z             },
2026-06-18T12:03:29.0253704Z             {
2026-06-18T12:03:29.0254138Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0254462Z               "line": 769
2026-06-18T12:03:29.0254738Z             },
2026-06-18T12:03:29.0255029Z             {
2026-06-18T12:03:29.0255445Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0255753Z               "line": 782
2026-06-18T12:03:29.0256037Z             },
2026-06-18T12:03:29.0256318Z             {
2026-06-18T12:03:29.0256734Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0257039Z               "line": 800
2026-06-18T12:03:29.0257325Z             },
2026-06-18T12:03:29.0257610Z             {
2026-06-18T12:03:29.0258031Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0258341Z               "line": 841
2026-06-18T12:03:29.0258625Z             }
2026-06-18T12:03:29.0258913Z           ]
2026-06-18T12:03:29.0259382Z         },
2026-06-18T12:03:29.0259673Z         "int": {
2026-06-18T12:03:29.0259988Z           "complete": false,
2026-06-18T12:03:29.0260298Z           "evidence": []
2026-06-18T12:03:29.0260593Z         },
2026-06-18T12:03:29.0260879Z         "unit": {
2026-06-18T12:03:29.0261187Z           "complete": true,
2026-06-18T12:03:29.0261480Z           "evidence": [
2026-06-18T12:03:29.0261762Z             {
2026-06-18T12:03:29.0262182Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0262482Z               "line": 1189
2026-06-18T12:03:29.0262773Z             },
2026-06-18T12:03:29.0263054Z             {
2026-06-18T12:03:29.0263465Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0263889Z               "line": 1213
2026-06-18T12:03:29.0264175Z             },
2026-06-18T12:03:29.0264460Z             {
2026-06-18T12:03:29.0264885Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.0265194Z               "line": 1239
2026-06-18T12:03:29.0265476Z             }
2026-06-18T12:03:29.0265767Z           ]
2026-06-18T12:03:29.0266044Z         }
2026-06-18T12:03:29.0266333Z       }
2026-06-18T12:03:29.0266702Z     },
2026-06-18T12:03:29.0266984Z     {
2026-06-18T12:03:29.0267304Z       "id": "REQ-DAEMON-6",
2026-06-18T12:03:29.0273791Z       "title": "Service-aware `daemon start`/`stop`: when an OS service manager has a registered spt-daemon for this user, `spt daemon start` and `spt daemon stop` drive THAT service (so stop doesn't IPC-kill a unit that auto-restart-fights for the broker socket — the kitsubito 2026-06-08 loop). `start` graduates from a `run` alias to a first-class background verb (ensure-up, idempotent, non-blocking); stop routes managed→manager, manual→IPC. Linux=systemd user unit (`systemctl --user start|stop|is-active spt-daemon`, detected by unit-file presence); Windows=no controllable manager (the logon task is boot-only), so start=detached spawn / stop=IPC.",
2026-06-18T12:03:29.0274162Z       "requiredStages": [
2026-06-18T12:03:29.0274453Z         "impl",
2026-06-18T12:03:29.0274739Z         "unit"
2026-06-18T12:03:29.0275025Z       ],
2026-06-18T12:03:29.0275321Z       "stages": {
2026-06-18T12:03:29.0275631Z         "doc": {
2026-06-18T12:03:29.0275951Z           "complete": false,
2026-06-18T12:03:29.0276256Z           "evidence": []
2026-06-18T12:03:29.0276541Z         },
2026-06-18T12:03:29.0276836Z         "impl": {
2026-06-18T12:03:29.0277157Z           "complete": true,
2026-06-18T12:03:29.0277462Z           "evidence": [
2026-06-18T12:03:29.0277749Z             {
2026-06-18T12:03:29.0278159Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0278473Z               "line": 490
2026-06-18T12:03:29.0278784Z             },
2026-06-18T12:03:29.0279157Z             {
2026-06-18T12:03:29.0279580Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0279883Z               "line": 521
2026-06-18T12:03:29.0280173Z             },
2026-06-18T12:03:29.0280455Z             {
2026-06-18T12:03:29.0280884Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0281183Z               "line": 55
2026-06-18T12:03:29.0281470Z             },
2026-06-18T12:03:29.0281766Z             {
2026-06-18T12:03:29.0282184Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0282482Z               "line": 70
2026-06-18T12:03:29.0282769Z             },
2026-06-18T12:03:29.0283059Z             {
2026-06-18T12:03:29.0283426Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0283740Z               "line": 1898
2026-06-18T12:03:29.0284032Z             },
2026-06-18T12:03:29.0284314Z             {
2026-06-18T12:03:29.0284675Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0284990Z               "line": 1924
2026-06-18T12:03:29.0285280Z             }
2026-06-18T12:03:29.0285571Z           ]
2026-06-18T12:03:29.0285852Z         },
2026-06-18T12:03:29.0286143Z         "int": {
2026-06-18T12:03:29.0286457Z           "complete": false,
2026-06-18T12:03:29.0286767Z           "evidence": []
2026-06-18T12:03:29.0287053Z         },
2026-06-18T12:03:29.0287339Z         "unit": {
2026-06-18T12:03:29.0287665Z           "complete": true,
2026-06-18T12:03:29.0287961Z           "evidence": [
2026-06-18T12:03:29.0288252Z             {
2026-06-18T12:03:29.0288652Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0289039Z               "line": 288
2026-06-18T12:03:29.0289324Z             },
2026-06-18T12:03:29.0289611Z             {
2026-06-18T12:03:29.0290027Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0290329Z               "line": 299
2026-06-18T12:03:29.0290623Z             },
2026-06-18T12:03:29.0291024Z             {
2026-06-18T12:03:29.0291439Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0291744Z               "line": 325
2026-06-18T12:03:29.0292035Z             },
2026-06-18T12:03:29.0292331Z             {
2026-06-18T12:03:29.0292739Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0293038Z               "line": 351
2026-06-18T12:03:29.0293319Z             }
2026-06-18T12:03:29.0293705Z           ]
2026-06-18T12:03:29.0293991Z         }
2026-06-18T12:03:29.0294277Z       }
2026-06-18T12:03:29.0294559Z     },
2026-06-18T12:03:29.0294826Z     {
2026-06-18T12:03:29.0295150Z       "id": "REQ-DAEMON-7",
2026-06-18T12:03:29.0299799Z       "title": "`daemon run` is foreground-consistent on every platform: the invoking process IS the daemon, blocks until signalled, never auto-detaches or respawns into an invisible background task. The detached/de-elevated background behavior lives ONLY in `start`. Windows: an ELEVATED `daemon run` refuses with guidance (use `start`, or an unelevated shell) instead of respawning detached/de-elevated and vanishing (KH 5.7 preserved — it still never serves elevated).",
2026-06-18T12:03:29.0300152Z       "requiredStages": [
2026-06-18T12:03:29.0300437Z         "impl",
2026-06-18T12:03:29.0300723Z         "unit"
2026-06-18T12:03:29.0301012Z       ],
2026-06-18T12:03:29.0301303Z       "stages": {
2026-06-18T12:03:29.0301584Z         "doc": {
2026-06-18T12:03:29.0301913Z           "complete": false,
2026-06-18T12:03:29.0302214Z           "evidence": []
2026-06-18T12:03:29.0302495Z         },
2026-06-18T12:03:29.0302776Z         "impl": {
2026-06-18T12:03:29.0303081Z           "complete": true,
2026-06-18T12:03:29.0303385Z           "evidence": [
2026-06-18T12:03:29.0303668Z             {
2026-06-18T12:03:29.0304093Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0304393Z               "line": 540
2026-06-18T12:03:29.0304674Z             },
2026-06-18T12:03:29.0304956Z             {
2026-06-18T12:03:29.0305377Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.0305677Z               "line": 601
2026-06-18T12:03:29.0305958Z             },
2026-06-18T12:03:29.0306247Z             {
2026-06-18T12:03:29.0306658Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0306958Z               "line": 89
2026-06-18T12:03:29.0307244Z             },
2026-06-18T12:03:29.0307529Z             {
2026-06-18T12:03:29.0307902Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0308207Z               "line": 1845
2026-06-18T12:03:29.0308497Z             }
2026-06-18T12:03:29.0308786Z           ]
2026-06-18T12:03:29.0309176Z         },
2026-06-18T12:03:29.0309472Z         "int": {
2026-06-18T12:03:29.0309791Z           "complete": false,
2026-06-18T12:03:29.0310092Z           "evidence": []
2026-06-18T12:03:29.0310368Z         },
2026-06-18T12:03:29.0310654Z         "unit": {
2026-06-18T12:03:29.0310959Z           "complete": true,
2026-06-18T12:03:29.0311265Z           "evidence": [
2026-06-18T12:03:29.0311545Z             {
2026-06-18T12:03:29.0311958Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0312258Z               "line": 314
2026-06-18T12:03:29.0312554Z             },
2026-06-18T12:03:29.0312835Z             {
2026-06-18T12:03:29.0313188Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0313498Z               "line": 7924
2026-06-18T12:03:29.0313785Z             }
2026-06-18T12:03:29.0314064Z           ]
2026-06-18T12:03:29.0314348Z         }
2026-06-18T12:03:29.0314639Z       }
2026-06-18T12:03:29.0314925Z     },
2026-06-18T12:03:29.0315197Z     {
2026-06-18T12:03:29.0315511Z       "id": "REQ-DAEMON-8",
2026-06-18T12:03:29.0318582Z       "title": "Internal auto-start prefers the service: `ensure_running` (any spt command's implicit daemon start, REQ-DAEMON-3) routes through the service-aware start path — when a manager has a registered service it starts THAT, never a competing manual `spawn_detached` daemon that would fight the service for the socket.",
2026-06-18T12:03:29.0319104Z       "requiredStages": [
2026-06-18T12:03:29.0319398Z         "impl",
2026-06-18T12:03:29.0319684Z         "unit"
2026-06-18T12:03:29.0319974Z       ],
2026-06-18T12:03:29.0320266Z       "stages": {
2026-06-18T12:03:29.0320552Z         "doc": {
2026-06-18T12:03:29.0320871Z           "complete": false,
2026-06-18T12:03:29.0321181Z           "evidence": []
2026-06-18T12:03:29.0321601Z         },
2026-06-18T12:03:29.0321886Z         "impl": {
2026-06-18T12:03:29.0322208Z           "complete": true,
2026-06-18T12:03:29.0322508Z           "evidence": [
2026-06-18T12:03:29.0322800Z             {
2026-06-18T12:03:29.0323209Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0323519Z               "line": 440
2026-06-18T12:03:29.0323819Z             },
2026-06-18T12:03:29.0324101Z             {
2026-06-18T12:03:29.0324500Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0324812Z               "line": 56
2026-06-18T12:03:29.0325108Z             }
2026-06-18T12:03:29.0325385Z           ]
2026-06-18T12:03:29.0325676Z         },
2026-06-18T12:03:29.0325967Z         "int": {
2026-06-18T12:03:29.0326282Z           "complete": false,
2026-06-18T12:03:29.0326601Z           "evidence": []
2026-06-18T12:03:29.0326888Z         },
2026-06-18T12:03:29.0327179Z         "unit": {
2026-06-18T12:03:29.0327487Z           "complete": true,
2026-06-18T12:03:29.0327802Z           "evidence": [
2026-06-18T12:03:29.0328083Z             {
2026-06-18T12:03:29.0328493Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0328804Z               "line": 288
2026-06-18T12:03:29.0329537Z             },
2026-06-18T12:03:29.0329835Z             {
2026-06-18T12:03:29.0330239Z               "path": "crates/spt-daemon/src/service.rs",
2026-06-18T12:03:29.0330540Z               "line": 325
2026-06-18T12:03:29.0330831Z             }
2026-06-18T12:03:29.0331103Z           ]
2026-06-18T12:03:29.0331389Z         }
2026-06-18T12:03:29.0331662Z       }
2026-06-18T12:03:29.0331948Z     },
2026-06-18T12:03:29.0332214Z     {
2026-06-18T12:03:29.0332531Z       "id": "REQ-DAEMON-9",
2026-06-18T12:03:29.0344116Z       "title": "Net-bind boot-race resilience: a daemon that comes up net-less (NetHost::start failed — e.g. the systemd unit autostarted before the network/DNS stack was ready, `Failed to create an address lookup service`) must SELF-HEAL — retry the net bring-up in the background with capped backoff and, on success, attach net to the broker + spawn the dispatcher/peer-pump (which today are gated on `net_up` at boot and so never start, leaving the node silently unreachable until a manual restart — kitsubito 2026-06-08). Status surfaces the net-less state honestly (a net-less broker renders as 'no connection', not only a pump-STALLED line with a bogus pre-boot heartbeat age). The installer's autostart unit waits for the network (`Wants=/After=network-online.target`) as belt-and-suspenders.",
2026-06-18T12:03:29.0344530Z       "requiredStages": [
2026-06-18T12:03:29.0344822Z         "impl",
2026-06-18T12:03:29.0345113Z         "unit"
2026-06-18T12:03:29.0345380Z       ],
2026-06-18T12:03:29.0345688Z       "stages": {
2026-06-18T12:03:29.0345966Z         "doc": {
2026-06-18T12:03:29.0346285Z           "complete": false,
2026-06-18T12:03:29.0346586Z           "evidence": []
2026-06-18T12:03:29.0346862Z         },
2026-06-18T12:03:29.0347173Z         "impl": {
2026-06-18T12:03:29.0347483Z           "complete": true,
2026-06-18T12:03:29.0347793Z           "evidence": [
2026-06-18T12:03:29.0348073Z             {
2026-06-18T12:03:29.0348516Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0348821Z               "line": 276
2026-06-18T12:03:29.0349174Z             },
2026-06-18T12:03:29.0349470Z             {
2026-06-18T12:03:29.0349881Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0350182Z               "line": 601
2026-06-18T12:03:29.0350619Z             },
2026-06-18T12:03:29.0350895Z             {
2026-06-18T12:03:29.0351431Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0351736Z               "line": 192
2026-06-18T12:03:29.0352027Z             },
2026-06-18T12:03:29.0352309Z             {
2026-06-18T12:03:29.0352724Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0353039Z               "line": 339
2026-06-18T12:03:29.0353440Z             },
2026-06-18T12:03:29.0353720Z             {
2026-06-18T12:03:29.0354132Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0354442Z               "line": 376
2026-06-18T12:03:29.0354719Z             },
2026-06-18T12:03:29.0354996Z             {
2026-06-18T12:03:29.0355353Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0355649Z               "line": 1953
2026-06-18T12:03:29.0355936Z             }
2026-06-18T12:03:29.0356214Z           ]
2026-06-18T12:03:29.0356493Z         },
2026-06-18T12:03:29.0356784Z         "int": {
2026-06-18T12:03:29.0357098Z           "complete": false,
2026-06-18T12:03:29.0357399Z           "evidence": []
2026-06-18T12:03:29.0357680Z         },
2026-06-18T12:03:29.0357976Z         "unit": {
2026-06-18T12:03:29.0358277Z           "complete": true,
2026-06-18T12:03:29.0358569Z           "evidence": [
2026-06-18T12:03:29.0358855Z             {
2026-06-18T12:03:29.0359353Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.0359725Z               "line": 787
2026-06-18T12:03:29.0360006Z             },
2026-06-18T12:03:29.0360283Z             {
2026-06-18T12:03:29.0360641Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0360941Z               "line": 10333
2026-06-18T12:03:29.0361222Z             }
2026-06-18T12:03:29.0361511Z           ]
2026-06-18T12:03:29.0361797Z         }
2026-06-18T12:03:29.0362078Z       }
2026-06-18T12:03:29.0362355Z     },
2026-06-18T12:03:29.0362626Z     {
2026-06-18T12:03:29.0362940Z       "id": "REQ-DOCS-1",
2026-06-18T12:03:29.0363619Z       "title": "Dual-audience docs (human + AI dev-agent), markdown once / two depths",
2026-06-18T12:03:29.0363943Z       "requiredStages": [
2026-06-18T12:03:29.0364231Z         "doc",
2026-06-18T12:03:29.0364500Z         "impl"
2026-06-18T12:03:29.0364782Z       ],
2026-06-18T12:03:29.0365069Z       "stages": {
2026-06-18T12:03:29.0365345Z         "doc": {
2026-06-18T12:03:29.0365660Z           "complete": true,
2026-06-18T12:03:29.0365975Z           "evidence": [
2026-06-18T12:03:29.0366257Z             {
2026-06-18T12:03:29.0366623Z               "path": "docs-site/src/index.md",
2026-06-18T12:03:29.0366926Z               "line": 50
2026-06-18T12:03:29.0367207Z             }
2026-06-18T12:03:29.0367493Z           ]
2026-06-18T12:03:29.0367764Z         },
2026-06-18T12:03:29.0368060Z         "impl": {
2026-06-18T12:03:29.0368370Z           "complete": true,
2026-06-18T12:03:29.0368655Z           "evidence": [
2026-06-18T12:03:29.0369023Z             {
2026-06-18T12:03:29.0369458Z               "path": ".github/workflows/docs-publish.yml",
2026-06-18T12:03:29.0369766Z               "line": 12
2026-06-18T12:03:29.0370052Z             },
2026-06-18T12:03:29.0370334Z             {
2026-06-18T12:03:29.0370696Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.0370987Z               "line": 14
2026-06-18T12:03:29.0371273Z             }
2026-06-18T12:03:29.0371554Z           ]
2026-06-18T12:03:29.0371839Z         },
2026-06-18T12:03:29.0372127Z         "int": {
2026-06-18T12:03:29.0372437Z           "complete": false,
2026-06-18T12:03:29.0372733Z           "evidence": []
2026-06-18T12:03:29.0373010Z         },
2026-06-18T12:03:29.0373305Z         "unit": {
2026-06-18T12:03:29.0373620Z           "complete": false,
2026-06-18T12:03:29.0373930Z           "evidence": []
2026-06-18T12:03:29.0374213Z         }
2026-06-18T12:03:29.0374498Z       }
2026-06-18T12:03:29.0374767Z     },
2026-06-18T12:03:29.0375042Z     {
2026-06-18T12:03:29.0375357Z       "id": "REQ-DOCS-2",
2026-06-18T12:03:29.0376024Z       "title": "Sub-10-minute runnable killer quickstart per audience",
2026-06-18T12:03:29.0376353Z       "requiredStages": [
2026-06-18T12:03:29.0376644Z         "doc",
2026-06-18T12:03:29.0376940Z         "int"
2026-06-18T12:03:29.0377216Z       ],
2026-06-18T12:03:29.0377510Z       "stages": {
2026-06-18T12:03:29.0377796Z         "doc": {
2026-06-18T12:03:29.0378111Z           "complete": true,
2026-06-18T12:03:29.0378520Z           "evidence": [
2026-06-18T12:03:29.0378801Z             {
2026-06-18T12:03:29.0379478Z               "path": "docs-site/src/harness-contract/integration-checklist.md",
2026-06-18T12:03:29.0379787Z               "line": 3
2026-06-18T12:03:29.0380069Z             },
2026-06-18T12:03:29.0380345Z             {
2026-06-18T12:03:29.0380779Z               "path": "docs-site/src/quickstart/adapter.md",
2026-06-18T12:03:29.0381075Z               "line": 3
2026-06-18T12:03:29.0381355Z             },
2026-06-18T12:03:29.0381642Z             {
2026-06-18T12:03:29.0382099Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-18T12:03:29.0382399Z               "line": 3
2026-06-18T12:03:29.0382687Z             }
2026-06-18T12:03:29.0382974Z           ]
2026-06-18T12:03:29.0383270Z         },
2026-06-18T12:03:29.0383555Z         "impl": {
2026-06-18T12:03:29.0383880Z           "complete": false,
2026-06-18T12:03:29.0384195Z           "evidence": []
2026-06-18T12:03:29.0384463Z         },
2026-06-18T12:03:29.0384753Z         "int": {
2026-06-18T12:03:29.0385068Z           "complete": true,
2026-06-18T12:03:29.0385371Z           "evidence": [
2026-06-18T12:03:29.0385644Z             {
2026-06-18T12:03:29.0386070Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T12:03:29.0386371Z               "line": 14
2026-06-18T12:03:29.0386656Z             }
2026-06-18T12:03:29.0386937Z           ]
2026-06-18T12:03:29.0387219Z         },
2026-06-18T12:03:29.0387505Z         "unit": {
2026-06-18T12:03:29.0387824Z           "complete": false,
2026-06-18T12:03:29.0388136Z           "evidence": []
2026-06-18T12:03:29.0388422Z         }
2026-06-18T12:03:29.0388699Z       }
2026-06-18T12:03:29.0389042Z     },
2026-06-18T12:03:29.0389319Z     {
2026-06-18T12:03:29.0389628Z       "id": "REQ-DOCS-3",
2026-06-18T12:03:29.0390187Z       "title": "Diátaxis structure; one canonical way to do X",
2026-06-18T12:03:29.0390517Z       "requiredStages": [
2026-06-18T12:03:29.0390809Z         "doc"
2026-06-18T12:03:29.0391110Z       ],
2026-06-18T12:03:29.0391400Z       "stages": {
2026-06-18T12:03:29.0391686Z         "doc": {
2026-06-18T12:03:29.0392006Z           "complete": true,
2026-06-18T12:03:29.0392307Z           "evidence": [
2026-06-18T12:03:29.0392592Z             {
2026-06-18T12:03:29.0392954Z               "path": "docs-site/src/index.md",
2026-06-18T12:03:29.0393252Z               "line": 42
2026-06-18T12:03:29.0393539Z             }
2026-06-18T12:03:29.0393820Z           ]
2026-06-18T12:03:29.0394107Z         },
2026-06-18T12:03:29.0394398Z         "impl": {
2026-06-18T12:03:29.0394717Z           "complete": false,
2026-06-18T12:03:29.0395013Z           "evidence": []
2026-06-18T12:03:29.0395295Z         },
2026-06-18T12:03:29.0395585Z         "int": {
2026-06-18T12:03:29.0395897Z           "complete": false,
2026-06-18T12:03:29.0396200Z           "evidence": []
2026-06-18T12:03:29.0396482Z         },
2026-06-18T12:03:29.0396772Z         "unit": {
2026-06-18T12:03:29.0397087Z           "complete": false,
2026-06-18T12:03:29.0397402Z           "evidence": []
2026-06-18T12:03:29.0397688Z         }
2026-06-18T12:03:29.0397965Z       }
2026-06-18T12:03:29.0398252Z     },
2026-06-18T12:03:29.0398517Z     {
2026-06-18T12:03:29.0398829Z       "id": "REQ-DOCS-4",
2026-06-18T12:03:29.0399631Z       "title": "Agent-consumable layer (llms.txt, manifest schema, MCP, CLI help)",
2026-06-18T12:03:29.0399955Z       "requiredStages": [
2026-06-18T12:03:29.0400241Z         "doc",
2026-06-18T12:03:29.0400527Z         "impl",
2026-06-18T12:03:29.0400809Z         "unit"
2026-06-18T12:03:29.0401203Z       ],
2026-06-18T12:03:29.0401500Z       "stages": {
2026-06-18T12:03:29.0401790Z         "doc": {
2026-06-18T12:03:29.0402109Z           "complete": true,
2026-06-18T12:03:29.0402419Z           "evidence": [
2026-06-18T12:03:29.0402701Z             {
2026-06-18T12:03:29.0403073Z               "path": "docs/DOCS-STRATEGY.md",
2026-06-18T12:03:29.0403369Z               "line": 35
2026-06-18T12:03:29.0403648Z             }
2026-06-18T12:03:29.0404037Z           ]
2026-06-18T12:03:29.0404314Z         },
2026-06-18T12:03:29.0404610Z         "impl": {
2026-06-18T12:03:29.0404915Z           "complete": true,
2026-06-18T12:03:29.0405225Z           "evidence": [
2026-06-18T12:03:29.0405506Z             {
2026-06-18T12:03:29.0405931Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.0406241Z               "line": 702
2026-06-18T12:03:29.0406529Z             },
2026-06-18T12:03:29.0406809Z             {
2026-06-18T12:03:29.0407167Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.0407482Z               "line": 15
2026-06-18T12:03:29.0407762Z             }
2026-06-18T12:03:29.0408029Z           ]
2026-06-18T12:03:29.0408305Z         },
2026-06-18T12:03:29.0408591Z         "int": {
2026-06-18T12:03:29.0408911Z           "complete": false,
2026-06-18T12:03:29.0409313Z           "evidence": []
2026-06-18T12:03:29.0409604Z         },
2026-06-18T12:03:29.0409885Z         "unit": {
2026-06-18T12:03:29.0410209Z           "complete": true,
2026-06-18T12:03:29.0410510Z           "evidence": [
2026-06-18T12:03:29.0410796Z             {
2026-06-18T12:03:29.0411211Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.0411507Z               "line": 1479
2026-06-18T12:03:29.0411797Z             }
2026-06-18T12:03:29.0412069Z           ]
2026-06-18T12:03:29.0412350Z         }
2026-06-18T12:03:29.0412618Z       }
2026-06-18T12:03:29.0412903Z     },
2026-06-18T12:03:29.0413184Z     {
2026-06-18T12:03:29.0413489Z       "id": "REQ-DOCS-5",
2026-06-18T12:03:29.0414175Z       "title": "Anti-drift: rustdoc/schema/exports/CLI-help generated + CI-checked",
2026-06-18T12:03:29.0414492Z       "requiredStages": [
2026-06-18T12:03:29.0414778Z         "impl",
2026-06-18T12:03:29.0415068Z         "int"
2026-06-18T12:03:29.0415345Z       ],
2026-06-18T12:03:29.0415632Z       "stages": {
2026-06-18T12:03:29.0415913Z         "doc": {
2026-06-18T12:03:29.0416237Z           "complete": false,
2026-06-18T12:03:29.0416538Z           "evidence": []
2026-06-18T12:03:29.0416815Z         },
2026-06-18T12:03:29.0417104Z         "impl": {
2026-06-18T12:03:29.0417412Z           "complete": true,
2026-06-18T12:03:29.0417708Z           "evidence": [
2026-06-18T12:03:29.0417988Z             {
2026-06-18T12:03:29.0418414Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.0418710Z               "line": 703
2026-06-18T12:03:29.0419114Z             },
2026-06-18T12:03:29.0419392Z             {
2026-06-18T12:03:29.0419751Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.0420056Z               "line": 113
2026-06-18T12:03:29.0420341Z             }
2026-06-18T12:03:29.0420628Z           ]
2026-06-18T12:03:29.0420904Z         },
2026-06-18T12:03:29.0421194Z         "int": {
2026-06-18T12:03:29.0421504Z           "complete": true,
2026-06-18T12:03:29.0421814Z           "evidence": [
2026-06-18T12:03:29.0422095Z             {
2026-06-18T12:03:29.0422461Z               "path": ".github/workflows/ci.yml",
2026-06-18T12:03:29.0422781Z               "line": 126
2026-06-18T12:03:29.0423053Z             },
2026-06-18T12:03:29.0423343Z             {
2026-06-18T12:03:29.0423759Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.0424059Z               "line": 1516
2026-06-18T12:03:29.0424345Z             }
2026-06-18T12:03:29.0424626Z           ]
2026-06-18T12:03:29.0424919Z         },
2026-06-18T12:03:29.0425201Z         "unit": {
2026-06-18T12:03:29.0425520Z           "complete": false,
2026-06-18T12:03:29.0425962Z           "evidence": []
2026-06-18T12:03:29.0426249Z         }
2026-06-18T12:03:29.0426535Z       }
2026-06-18T12:03:29.0426811Z     },
2026-06-18T12:03:29.0427098Z     {
2026-06-18T12:03:29.0427413Z       "id": "REQ-DOCS-6",
2026-06-18T12:03:29.0428553Z       "title": "spt how-to <topic>: in-binary task-oriented agent instructions (anti-drift; quickstart prompts point agents at it)",
2026-06-18T12:03:29.0428873Z       "requiredStages": [
2026-06-18T12:03:29.0429350Z         "impl",
2026-06-18T12:03:29.0429655Z         "unit",
2026-06-18T12:03:29.0429937Z         "int"
2026-06-18T12:03:29.0430221Z       ],
2026-06-18T12:03:29.0430501Z       "stages": {
2026-06-18T12:03:29.0430786Z         "doc": {
2026-06-18T12:03:29.0431092Z           "complete": true,
2026-06-18T12:03:29.0431382Z           "evidence": [
2026-06-18T12:03:29.0431668Z             {
2026-06-18T12:03:29.0432113Z               "path": "docs-site/src/quickstart/messaging.md",
2026-06-18T12:03:29.0432404Z               "line": 4
2026-06-18T12:03:29.0432685Z             }
2026-06-18T12:03:29.0432960Z           ]
2026-06-18T12:03:29.0433246Z         },
2026-06-18T12:03:29.0433533Z         "impl": {
2026-06-18T12:03:29.0433848Z           "complete": true,
2026-06-18T12:03:29.0434142Z           "evidence": [
2026-06-18T12:03:29.0434429Z             {
2026-06-18T12:03:29.0434786Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0435082Z               "line": 5091
2026-06-18T12:03:29.0435381Z             }
2026-06-18T12:03:29.0435665Z           ]
2026-06-18T12:03:29.0435946Z         },
2026-06-18T12:03:29.0436222Z         "int": {
2026-06-18T12:03:29.0436532Z           "complete": true,
2026-06-18T12:03:29.0436823Z           "evidence": [
2026-06-18T12:03:29.0437114Z             {
2026-06-18T12:03:29.0437535Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T12:03:29.0437836Z               "line": 39
2026-06-18T12:03:29.0438124Z             }
2026-06-18T12:03:29.0438412Z           ]
2026-06-18T12:03:29.0441895Z         },
2026-06-18T12:03:29.0442219Z         "unit": {
2026-06-18T12:03:29.0442544Z           "complete": true,
2026-06-18T12:03:29.0442844Z           "evidence": [
2026-06-18T12:03:29.0443125Z             {
2026-06-18T12:03:29.0443496Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0443792Z               "line": 10495
2026-06-18T12:03:29.0444079Z             }
2026-06-18T12:03:29.0444350Z           ]
2026-06-18T12:03:29.0444632Z         }
2026-06-18T12:03:29.0444927Z       }
2026-06-18T12:03:29.0445209Z     },
2026-06-18T12:03:29.0445485Z     {
2026-06-18T12:03:29.0445802Z       "id": "REQ-ELEVATE-1",
2026-06-18T12:03:29.0456165Z       "title": "Cross-platform self-elevating re-launch for privilege-gated commands: a pure decision seam `decide_elevation_path(os, elevation, interactive_tty, has_display, has_pkexec, has_term_emulator) -> ElevatePath{AlreadyElevated, InlineSudo, UacWindow, Pkexec, TerminalEmulator, PrintHint}` selecting how to re-acquire privilege, and the per-OS impure launchers it dispatches — Windows UAC console (ShellExecuteW `runas` on the abs-exe + verbatim argv; the elevated child does the work, prints 'You can close this window', and pauses for a keypress; the original prints 'Elevated terminal launched…' and exits 0; NEVER pipes the child's stdout back across the privilege boundary), Linux desktop pkexec (preferred, native polkit GUI auth) else x-terminal-emulator -e sudo (fallback list x-terminal-emulator→gnome-terminal→konsole→xterm), the existing interactive-TTY inline sudo, and the headless/no-path floor that prints the absolute-path command. Reused by every gated command (not subnet-specific). Generalizes should_auto_elevate.",
2026-06-18T12:03:29.0456571Z       "requiredStages": [
2026-06-18T12:03:29.0456853Z         "doc",
2026-06-18T12:03:29.0457139Z         "impl",
2026-06-18T12:03:29.0457425Z         "unit"
2026-06-18T12:03:29.0457697Z       ],
2026-06-18T12:03:29.0457991Z       "stages": {
2026-06-18T12:03:29.0458273Z         "doc": {
2026-06-18T12:03:29.0458746Z           "complete": true,
2026-06-18T12:03:29.0459126Z           "evidence": [
2026-06-18T12:03:29.0459411Z             {
2026-06-18T12:03:29.0459739Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.0460039Z               "line": 669
2026-06-18T12:03:29.0460330Z             }
2026-06-18T12:03:29.0460612Z           ]
2026-06-18T12:03:29.0460902Z         },
2026-06-18T12:03:29.0461183Z         "impl": {
2026-06-18T12:03:29.0461493Z           "complete": true,
2026-06-18T12:03:29.0461907Z           "evidence": [
2026-06-18T12:03:29.0462190Z             {
2026-06-18T12:03:29.0462549Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0462854Z               "line": 3430
2026-06-18T12:03:29.0463145Z             },
2026-06-18T12:03:29.0463430Z             {
2026-06-18T12:03:29.0463794Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0464094Z               "line": 3475
2026-06-18T12:03:29.0464380Z             },
2026-06-18T12:03:29.0464668Z             {
2026-06-18T12:03:29.0465036Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0465341Z               "line": 3537
2026-06-18T12:03:29.0465622Z             },
2026-06-18T12:03:29.0465904Z             {
2026-06-18T12:03:29.0466290Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.0466585Z               "line": 92
2026-06-18T12:03:29.0466875Z             },
2026-06-18T12:03:29.0467150Z             {
2026-06-18T12:03:29.0467535Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.0467845Z               "line": 148
2026-06-18T12:03:29.0468118Z             }
2026-06-18T12:03:29.0468404Z           ]
2026-06-18T12:03:29.0468685Z         },
2026-06-18T12:03:29.0469105Z         "int": {
2026-06-18T12:03:29.0469443Z           "complete": false,
2026-06-18T12:03:29.0469752Z           "evidence": []
2026-06-18T12:03:29.0470041Z         },
2026-06-18T12:03:29.0470342Z         "unit": {
2026-06-18T12:03:29.0470661Z           "complete": true,
2026-06-18T12:03:29.0470967Z           "evidence": [
2026-06-18T12:03:29.0471247Z             {
2026-06-18T12:03:29.0471638Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.0471938Z               "line": 442
2026-06-18T12:03:29.0472215Z             },
2026-06-18T12:03:29.0472505Z             {
2026-06-18T12:03:29.0472889Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.0473195Z               "line": 460
2026-06-18T12:03:29.0473485Z             }
2026-06-18T12:03:29.0473776Z           ]
2026-06-18T12:03:29.0474068Z         }
2026-06-18T12:03:29.0474339Z       }
2026-06-18T12:03:29.0474615Z     },
2026-06-18T12:03:29.0474896Z     {
2026-06-18T12:03:29.0475228Z       "id": "REQ-ENDPOINT-PURGE",
2026-06-18T12:03:29.0490139Z       "title": "`spt endpoint purge <id>` fully removes an endpoint AND every record keyed on it — the formal teardown devs/CI need for clean test setup/reset. NOT consent-gated (a local dev/test op — no peer consent). OFFLINE-ONLY: refuses while the endpoint is online / daemon-hosted (deleting records out from under a live host risks the daemon re-creating or re-hosting mid-purge); `--force` STOPS it first (endpoint stop → wait for the daemon reconcile to un-host + reap the Psyche) THEN purges. Confirms interactively unless `--yes` (the CI path). Refuses purging the CALLER's OWN running id. All LOCAL — purge reaches only THIS node's records; a remote endpoint's records can't be touched, and its subnet-registry rows decay via the epoch-lease eviction (REQ-HAZARD-REGISTRY-DECAY). Removes: (1) the perch dir TREE recursively — owlery/<id>/ incl every nested {id}-psyche / {id}-w* / shells child (info.json, ready marker, sessions.log ledger, spool.db, inbox, .idle/.more-done sentinels, auth token); (2) the registry address (registry::unregister_address); (3) the context store — ContextStore::remove_endpoint(id): the a-<id> branch+worktree + the <id>/ rows from every p-<project> branch (the same fn `fork --delete-source` already uses); (4) node-local trust rows keyed on the id — access.json + visibility.json. Reuse-heavy: it is `fork --delete-source` generalized (recursive perch remove + unregister + remove_endpoint) + the trust-record cleanup; `endpoint rename` already enumerates the same record set + uses the same offline-only gate. (v0.12.0)",
2026-06-18T12:03:29.0490670Z       "requiredStages": [
2026-06-18T12:03:29.0490963Z         "doc",
2026-06-18T12:03:29.0491261Z         "impl",
2026-06-18T12:03:29.0491542Z         "unit",
2026-06-18T12:03:29.0491944Z         "int"
2026-06-18T12:03:29.0492225Z       ],
2026-06-18T12:03:29.0492510Z       "stages": {
2026-06-18T12:03:29.0492801Z         "doc": {
2026-06-18T12:03:29.0493107Z           "complete": true,
2026-06-18T12:03:29.0493415Z           "evidence": [
2026-06-18T12:03:29.0493704Z             {
2026-06-18T12:03:29.0494024Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.0494325Z               "line": 163
2026-06-18T12:03:29.0494619Z             }
2026-06-18T12:03:29.0494897Z           ]
2026-06-18T12:03:29.0495198Z         },
2026-06-18T12:03:29.0495479Z         "impl": {
2026-06-18T12:03:29.0495789Z           "complete": true,
2026-06-18T12:03:29.0496099Z           "evidence": [
2026-06-18T12:03:29.0496377Z             {
2026-06-18T12:03:29.0496803Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.0497109Z               "line": 105
2026-06-18T12:03:29.0497399Z             },
2026-06-18T12:03:29.0497670Z             {
2026-06-18T12:03:29.0498038Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0498348Z               "line": 7058
2026-06-18T12:03:29.0498622Z             }
2026-06-18T12:03:29.0498901Z           ]
2026-06-18T12:03:29.0499249Z         },
2026-06-18T12:03:29.0499531Z         "int": {
2026-06-18T12:03:29.0499850Z           "complete": true,
2026-06-18T12:03:29.0500155Z           "evidence": [
2026-06-18T12:03:29.0500423Z             {
2026-06-18T12:03:29.0500771Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0501081Z               "line": 7223
2026-06-18T12:03:29.0501371Z             }
2026-06-18T12:03:29.0501646Z           ]
2026-06-18T12:03:29.0501927Z         },
2026-06-18T12:03:29.0502209Z         "unit": {
2026-06-18T12:03:29.0502519Z           "complete": true,
2026-06-18T12:03:29.0502818Z           "evidence": [
2026-06-18T12:03:29.0503099Z             {
2026-06-18T12:03:29.0503453Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0503758Z               "line": 7194
2026-06-18T12:03:29.0504056Z             }
2026-06-18T12:03:29.0504325Z           ]
2026-06-18T12:03:29.0504603Z         }
2026-06-18T12:03:29.0504875Z       }
2026-06-18T12:03:29.0505152Z     },
2026-06-18T12:03:29.0505423Z     {
2026-06-18T12:03:29.0505786Z       "id": "REQ-ENDPOINT-STOP-OFFLINE",
2026-06-18T12:03:29.0510029Z       "title": "H3: `spt endpoint stop <id>` marks the endpoint OFFLINE (alive=false), not merely de-readied. cmd_stop (cli.rs:2994-3010) removes the ready marker + unregisters the address but does NOT set status offline, so a stopped daemon-hosted endpoint still reports alive=true (status=online latch). FIX: add set_status(perch, STATUS_OFFLINE) to cmd_stop — folds with B2 (same setter). Unit: stop → is_perch_alive=false / alive=false. (v0.12.0)",
2026-06-18T12:03:29.0510382Z       "requiredStages": [
2026-06-18T12:03:29.0510678Z         "impl",
2026-06-18T12:03:29.0510964Z         "unit"
2026-06-18T12:03:29.0511250Z       ],
2026-06-18T12:03:29.0511532Z       "stages": {
2026-06-18T12:03:29.0511833Z         "doc": {
2026-06-18T12:03:29.0512150Z           "complete": false,
2026-06-18T12:03:29.0512458Z           "evidence": []
2026-06-18T12:03:29.0512739Z         },
2026-06-18T12:03:29.0513035Z         "impl": {
2026-06-18T12:03:29.0513355Z           "complete": true,
2026-06-18T12:03:29.0513659Z           "evidence": [
2026-06-18T12:03:29.0513941Z             {
2026-06-18T12:03:29.0514304Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0514612Z               "line": 3023
2026-06-18T12:03:29.0514905Z             }
2026-06-18T12:03:29.0515316Z           ]
2026-06-18T12:03:29.0515592Z         },
2026-06-18T12:03:29.0515882Z         "int": {
2026-06-18T12:03:29.0516197Z           "complete": false,
2026-06-18T12:03:29.0516502Z           "evidence": []
2026-06-18T12:03:29.0516784Z         },
2026-06-18T12:03:29.0517079Z         "unit": {
2026-06-18T12:03:29.0517394Z           "complete": true,
2026-06-18T12:03:29.0517704Z           "evidence": [
2026-06-18T12:03:29.0517985Z             {
2026-06-18T12:03:29.0518476Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0518776Z               "line": 7170
2026-06-18T12:03:29.0519120Z             }
2026-06-18T12:03:29.0519411Z           ]
2026-06-18T12:03:29.0519691Z         }
2026-06-18T12:03:29.0519974Z       }
2026-06-18T12:03:29.0520256Z     },
2026-06-18T12:03:29.0520537Z     {
2026-06-18T12:03:29.0520842Z       "id": "REQ-EP-1",
2026-06-18T12:03:29.0521280Z       "title": "Day-one endpoint types; open type system",
2026-06-18T12:03:29.0521610Z       "requiredStages": [
2026-06-18T12:03:29.0521905Z         "impl",
2026-06-18T12:03:29.0522196Z         "unit"
2026-06-18T12:03:29.0522482Z       ],
2026-06-18T12:03:29.0522771Z       "stages": {
2026-06-18T12:03:29.0523061Z         "doc": {
2026-06-18T12:03:29.0523371Z           "complete": false,
2026-06-18T12:03:29.0523691Z           "evidence": []
2026-06-18T12:03:29.0523973Z         },
2026-06-18T12:03:29.0524268Z         "impl": {
2026-06-18T12:03:29.0524578Z           "complete": true,
2026-06-18T12:03:29.0524879Z           "evidence": [
2026-06-18T12:03:29.0525172Z             {
2026-06-18T12:03:29.0525585Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0525891Z               "line": 77
2026-06-18T12:03:29.0526176Z             },
2026-06-18T12:03:29.0526462Z             {
2026-06-18T12:03:29.0526878Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0527188Z               "line": 94
2026-06-18T12:03:29.0527469Z             }
2026-06-18T12:03:29.0527751Z           ]
2026-06-18T12:03:29.0528034Z         },
2026-06-18T12:03:29.0528325Z         "int": {
2026-06-18T12:03:29.0528649Z           "complete": false,
2026-06-18T12:03:29.0529007Z           "evidence": []
2026-06-18T12:03:29.0529302Z         },
2026-06-18T12:03:29.0529599Z         "unit": {
2026-06-18T12:03:29.0529909Z           "complete": true,
2026-06-18T12:03:29.0530217Z           "evidence": [
2026-06-18T12:03:29.0530502Z             {
2026-06-18T12:03:29.0530935Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0531230Z               "line": 161
2026-06-18T12:03:29.0531512Z             },
2026-06-18T12:03:29.0531798Z             {
2026-06-18T12:03:29.0532213Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0532513Z               "line": 178
2026-06-18T12:03:29.0532799Z             }
2026-06-18T12:03:29.0533084Z           ]
2026-06-18T12:03:29.0533374Z         }
2026-06-18T12:03:29.0533660Z       }
2026-06-18T12:03:29.0533936Z     },
2026-06-18T12:03:29.0534213Z     {
2026-06-18T12:03:29.0534513Z       "id": "REQ-EP-2",
2026-06-18T12:03:29.0535076Z       "title": "Agent endpoints vs Shells distinction in the type model",
2026-06-18T12:03:29.0535395Z       "requiredStages": [
2026-06-18T12:03:29.0535690Z         "impl",
2026-06-18T12:03:29.0535973Z         "unit"
2026-06-18T12:03:29.0536255Z       ],
2026-06-18T12:03:29.0536546Z       "stages": {
2026-06-18T12:03:29.0536832Z         "doc": {
2026-06-18T12:03:29.0537151Z           "complete": false,
2026-06-18T12:03:29.0537457Z           "evidence": []
2026-06-18T12:03:29.0537734Z         },
2026-06-18T12:03:29.0538015Z         "impl": {
2026-06-18T12:03:29.0538325Z           "complete": true,
2026-06-18T12:03:29.0538618Z           "evidence": [
2026-06-18T12:03:29.0538909Z             {
2026-06-18T12:03:29.0539387Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0539716Z               "line": 114
2026-06-18T12:03:29.0540002Z             },
2026-06-18T12:03:29.0540392Z             {
2026-06-18T12:03:29.0540806Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0541109Z               "line": 131
2026-06-18T12:03:29.0541400Z             },
2026-06-18T12:03:29.0541677Z             {
2026-06-18T12:03:29.0542091Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0542401Z               "line": 138
2026-06-18T12:03:29.0542683Z             }
2026-06-18T12:03:29.0542968Z           ]
2026-06-18T12:03:29.0543346Z         },
2026-06-18T12:03:29.0543626Z         "int": {
2026-06-18T12:03:29.0543934Z           "complete": false,
2026-06-18T12:03:29.0544244Z           "evidence": []
2026-06-18T12:03:29.0544520Z         },
2026-06-18T12:03:29.0544797Z         "unit": {
2026-06-18T12:03:29.0545112Z           "complete": true,
2026-06-18T12:03:29.0545417Z           "evidence": [
2026-06-18T12:03:29.0545699Z             {
2026-06-18T12:03:29.0546118Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0546440Z               "line": 190
2026-06-18T12:03:29.0546729Z             },
2026-06-18T12:03:29.0547011Z             {
2026-06-18T12:03:29.0547435Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0547739Z               "line": 208
2026-06-18T12:03:29.0548031Z             },
2026-06-18T12:03:29.0548313Z             {
2026-06-18T12:03:29.0548731Z               "path": "crates/spt-proto/src/endpoint.rs",
2026-06-18T12:03:29.0549098Z               "line": 221
2026-06-18T12:03:29.0549388Z             }
2026-06-18T12:03:29.0549675Z           ]
2026-06-18T12:03:29.0549956Z         }
2026-06-18T12:03:29.0550233Z       }
2026-06-18T12:03:29.0550510Z     },
2026-06-18T12:03:29.0550796Z     {
2026-06-18T12:03:29.0551105Z       "id": "REQ-EP-3",
2026-06-18T12:03:29.0551735Z       "title": "Messaging payloads carry typed operation commands + file blobs",
2026-06-18T12:03:29.0552060Z       "requiredStages": [
2026-06-18T12:03:29.0552336Z         "impl",
2026-06-18T12:03:29.0552632Z         "unit"
2026-06-18T12:03:29.0552909Z       ],
2026-06-18T12:03:29.0553200Z       "stages": {
2026-06-18T12:03:29.0553486Z         "doc": {
2026-06-18T12:03:29.0553792Z           "complete": false,
2026-06-18T12:03:29.0554097Z           "evidence": []
2026-06-18T12:03:29.0554367Z         },
2026-06-18T12:03:29.0554660Z         "impl": {
2026-06-18T12:03:29.0554970Z           "complete": true,
2026-06-18T12:03:29.0555280Z           "evidence": [
2026-06-18T12:03:29.0555566Z             {
2026-06-18T12:03:29.0555972Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0556278Z               "line": 31
2026-06-18T12:03:29.0556559Z             },
2026-06-18T12:03:29.0556843Z             {
2026-06-18T12:03:29.0557237Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0557542Z               "line": 49
2026-06-18T12:03:29.0557832Z             }
2026-06-18T12:03:29.0558113Z           ]
2026-06-18T12:03:29.0558399Z         },
2026-06-18T12:03:29.0558687Z         "int": {
2026-06-18T12:03:29.0559068Z           "complete": false,
2026-06-18T12:03:29.0559373Z           "evidence": []
2026-06-18T12:03:29.0559658Z         },
2026-06-18T12:03:29.0559949Z         "unit": {
2026-06-18T12:03:29.0560254Z           "complete": true,
2026-06-18T12:03:29.0560560Z           "evidence": [
2026-06-18T12:03:29.0560845Z             {
2026-06-18T12:03:29.0561255Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0561560Z               "line": 156
2026-06-18T12:03:29.0561860Z             },
2026-06-18T12:03:29.0562144Z             {
2026-06-18T12:03:29.0562549Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0562854Z               "line": 164
2026-06-18T12:03:29.0563135Z             },
2026-06-18T12:03:29.0563422Z             {
2026-06-18T12:03:29.0563827Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0564142Z               "line": 177
2026-06-18T12:03:29.0564432Z             },
2026-06-18T12:03:29.0564713Z             {
2026-06-18T12:03:29.0565245Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0565540Z               "line": 200
2026-06-18T12:03:29.0565831Z             },
2026-06-18T12:03:29.0566111Z             {
2026-06-18T12:03:29.0566528Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0566838Z               "line": 216
2026-06-18T12:03:29.0567114Z             },
2026-06-18T12:03:29.0567398Z             {
2026-06-18T12:03:29.0567908Z               "path": "crates/spt-proto/src/payload.rs",
2026-06-18T12:03:29.0568221Z               "line": 233
2026-06-18T12:03:29.0568493Z             }
2026-06-18T12:03:29.0568780Z           ]
2026-06-18T12:03:29.0569133Z         }
2026-06-18T12:03:29.0569409Z       }
2026-06-18T12:03:29.0569696Z     },
2026-06-18T12:03:29.0569972Z     {
2026-06-18T12:03:29.0570285Z       "id": "REQ-EP-4",
2026-06-18T12:03:29.0570771Z       "title": "PresenceChannel broker endpoint (seam day-one)",
2026-06-18T12:03:29.0571095Z       "requiredStages": [
2026-06-18T12:03:29.0571396Z         "impl",
2026-06-18T12:03:29.0571692Z         "unit"
2026-06-18T12:03:29.0571974Z       ],
2026-06-18T12:03:29.0572265Z       "stages": {
2026-06-18T12:03:29.0572558Z         "doc": {
2026-06-18T12:03:29.0572860Z           "complete": false,
2026-06-18T12:03:29.0573170Z           "evidence": []
2026-06-18T12:03:29.0573452Z         },
2026-06-18T12:03:29.0573747Z         "impl": {
2026-06-18T12:03:29.0574062Z           "complete": true,
2026-06-18T12:03:29.0574368Z           "evidence": [
2026-06-18T12:03:29.0574653Z             {
2026-06-18T12:03:29.0575045Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0575349Z               "line": 718
2026-06-18T12:03:29.0575638Z             },
2026-06-18T12:03:29.0575924Z             {
2026-06-18T12:03:29.0576314Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0576619Z               "line": 1079
2026-06-18T12:03:29.0576906Z             },
2026-06-18T12:03:29.0577187Z             {
2026-06-18T12:03:29.0577593Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0577897Z               "line": 1434
2026-06-18T12:03:29.0578181Z             },
2026-06-18T12:03:29.0578472Z             {
2026-06-18T12:03:29.0578843Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0579205Z               "line": 118
2026-06-18T12:03:29.0579473Z             },
2026-06-18T12:03:29.0579754Z             {
2026-06-18T12:03:29.0580150Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0580445Z               "line": 651
2026-06-18T12:03:29.0580740Z             },
2026-06-18T12:03:29.0581023Z             {
2026-06-18T12:03:29.0581408Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0581699Z               "line": 788
2026-06-18T12:03:29.0581980Z             },
2026-06-18T12:03:29.0582267Z             {
2026-06-18T12:03:29.0582670Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0582985Z               "line": 271
2026-06-18T12:03:29.0583265Z             },
2026-06-18T12:03:29.0583555Z             {
2026-06-18T12:03:29.0583955Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0584261Z               "line": 458
2026-06-18T12:03:29.0584547Z             },
2026-06-18T12:03:29.0584824Z             {
2026-06-18T12:03:29.0585228Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.0585542Z               "line": 1246
2026-06-18T12:03:29.0585834Z             }
2026-06-18T12:03:29.0586123Z           ]
2026-06-18T12:03:29.0586403Z         },
2026-06-18T12:03:29.0586695Z         "int": {
2026-06-18T12:03:29.0587000Z           "complete": false,
2026-06-18T12:03:29.0587304Z           "evidence": []
2026-06-18T12:03:29.0587580Z         },
2026-06-18T12:03:29.0587872Z         "unit": {
2026-06-18T12:03:29.0588182Z           "complete": true,
2026-06-18T12:03:29.0588481Z           "evidence": [
2026-06-18T12:03:29.0588774Z             {
2026-06-18T12:03:29.0589337Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.0589642Z               "line": 879
2026-06-18T12:03:29.0589928Z             },
2026-06-18T12:03:29.0590215Z             {
2026-06-18T12:03:29.0590643Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-18T12:03:29.0590934Z               "line": 76
2026-06-18T12:03:29.0591216Z             },
2026-06-18T12:03:29.0591505Z             {
2026-06-18T12:03:29.0592043Z               "path": "crates/spt-daemon/tests/presence.rs",
2026-06-18T12:03:29.0592353Z               "line": 147
2026-06-18T12:03:29.0592640Z             }
2026-06-18T12:03:29.0592936Z           ]
2026-06-18T12:03:29.0593212Z         }
2026-06-18T12:03:29.0593494Z       }
2026-06-18T12:03:29.0593769Z     },
2026-06-18T12:03:29.0594048Z     {
2026-06-18T12:03:29.0594358Z       "id": "REQ-EP-5",
2026-06-18T12:03:29.0596716Z       "title": "Concrete shell instantiation model: spawn-mints-instance (vs relink/online), registered-on-node permission + broadcast-is-discovery, per-shell require_approval gate, max_instances_per_owner + over_cap, instance aliasing, discovery scope",
2026-06-18T12:03:29.0597059Z       "requiredStages": [
2026-06-18T12:03:29.0597345Z         "impl",
2026-06-18T12:03:29.0597640Z         "unit",
2026-06-18T12:03:29.0597922Z         "int"
2026-06-18T12:03:29.0598204Z       ],
2026-06-18T12:03:29.0598485Z       "stages": {
2026-06-18T12:03:29.0598775Z         "doc": {
2026-06-18T12:03:29.0599170Z           "complete": false,
2026-06-18T12:03:29.0599477Z           "evidence": []
2026-06-18T12:03:29.0599759Z         },
2026-06-18T12:03:29.0600044Z         "impl": {
2026-06-18T12:03:29.0600359Z           "complete": true,
2026-06-18T12:03:29.0600665Z           "evidence": [
2026-06-18T12:03:29.0600960Z             {
2026-06-18T12:03:29.0601410Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.0601705Z               "line": 367
2026-06-18T12:03:29.0601999Z             },
2026-06-18T12:03:29.0602284Z             {
2026-06-18T12:03:29.0602710Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0603001Z               "line": 18
2026-06-18T12:03:29.0603296Z             },
2026-06-18T12:03:29.0603582Z             {
2026-06-18T12:03:29.0604002Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0604301Z               "line": 63
2026-06-18T12:03:29.0604585Z             },
2026-06-18T12:03:29.0604884Z             {
2026-06-18T12:03:29.0605296Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0605601Z               "line": 92
2026-06-18T12:03:29.0605887Z             },
2026-06-18T12:03:29.0606158Z             {
2026-06-18T12:03:29.0606574Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0606874Z               "line": 167
2026-06-18T12:03:29.0607168Z             },
2026-06-18T12:03:29.0607452Z             {
2026-06-18T12:03:29.0607862Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0608173Z               "line": 179
2026-06-18T12:03:29.0608449Z             },
2026-06-18T12:03:29.0608725Z             {
2026-06-18T12:03:29.0609201Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.0609511Z               "line": 114
2026-06-18T12:03:29.0609806Z             },
2026-06-18T12:03:29.0610090Z             {
2026-06-18T12:03:29.0610505Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0610806Z               "line": 22
2026-06-18T12:03:29.0611086Z             },
2026-06-18T12:03:29.0611369Z             {
2026-06-18T12:03:29.0611787Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0612092Z               "line": 145
2026-06-18T12:03:29.0612379Z             },
2026-06-18T12:03:29.0612669Z             {
2026-06-18T12:03:29.0613083Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0613393Z               "line": 174
2026-06-18T12:03:29.0613679Z             },
2026-06-18T12:03:29.0614085Z             {
2026-06-18T12:03:29.0614495Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0614794Z               "line": 196
2026-06-18T12:03:29.0615077Z             },
2026-06-18T12:03:29.0615364Z             {
2026-06-18T12:03:29.0615784Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0616084Z               "line": 221
2026-06-18T12:03:29.0616375Z             },
2026-06-18T12:03:29.0616786Z             {
2026-06-18T12:03:29.0617195Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0617510Z               "line": 247
2026-06-18T12:03:29.0617799Z             },
2026-06-18T12:03:29.0618084Z             {
2026-06-18T12:03:29.0618499Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0618804Z               "line": 270
2026-06-18T12:03:29.0619157Z             },
2026-06-18T12:03:29.0619433Z             {
2026-06-18T12:03:29.0619852Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.0620161Z               "line": 100
2026-06-18T12:03:29.0620449Z             },
2026-06-18T12:03:29.0620723Z             {
2026-06-18T12:03:29.0621089Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0621394Z               "line": 5907
2026-06-18T12:03:29.0621675Z             },
2026-06-18T12:03:29.0621962Z             {
2026-06-18T12:03:29.0622314Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0622643Z               "line": 6041
2026-06-18T12:03:29.0622930Z             },
2026-06-18T12:03:29.0623220Z             {
2026-06-18T12:03:29.0623577Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0623882Z               "line": 6207
2026-06-18T12:03:29.0624164Z             },
2026-06-18T12:03:29.0624441Z             {
2026-06-18T12:03:29.0624808Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0625114Z               "line": 6735
2026-06-18T12:03:29.0625402Z             }
2026-06-18T12:03:29.0625690Z           ]
2026-06-18T12:03:29.0625966Z         },
2026-06-18T12:03:29.0626248Z         "int": {
2026-06-18T12:03:29.0626548Z           "complete": true,
2026-06-18T12:03:29.0626854Z           "evidence": [
2026-06-18T12:03:29.0627140Z             {
2026-06-18T12:03:29.0627574Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-18T12:03:29.0627870Z               "line": 16
2026-06-18T12:03:29.0628150Z             },
2026-06-18T12:03:29.0628448Z             {
2026-06-18T12:03:29.0628833Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-18T12:03:29.0629192Z               "line": 15
2026-06-18T12:03:29.0629477Z             }
2026-06-18T12:03:29.0629759Z           ]
2026-06-18T12:03:29.0630035Z         },
2026-06-18T12:03:29.0630322Z         "unit": {
2026-06-18T12:03:29.0630632Z           "complete": true,
2026-06-18T12:03:29.0630921Z           "evidence": [
2026-06-18T12:03:29.0631206Z             {
2026-06-18T12:03:29.0631635Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0631940Z               "line": 246
2026-06-18T12:03:29.0632235Z             },
2026-06-18T12:03:29.0632512Z             {
2026-06-18T12:03:29.0632932Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0633231Z               "line": 306
2026-06-18T12:03:29.0633509Z             },
2026-06-18T12:03:29.0633784Z             {
2026-06-18T12:03:29.0634194Z               "path": "crates/spt-daemon/src/shelldisc.rs",
2026-06-18T12:03:29.0634514Z               "line": 363
2026-06-18T12:03:29.0634790Z             },
2026-06-18T12:03:29.0635081Z             {
2026-06-18T12:03:29.0635481Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0635791Z               "line": 286
2026-06-18T12:03:29.0636084Z             },
2026-06-18T12:03:29.0636356Z             {
2026-06-18T12:03:29.0636770Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.0637075Z               "line": 338
2026-06-18T12:03:29.0637481Z             },
2026-06-18T12:03:29.0637767Z             {
2026-06-18T12:03:29.0638168Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.0638479Z               "line": 779
2026-06-18T12:03:29.0638757Z             },
2026-06-18T12:03:29.0639108Z             {
2026-06-18T12:03:29.0639461Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0639766Z               "line": 8521
2026-06-18T12:03:29.0640047Z             },
2026-06-18T12:03:29.0640445Z             {
2026-06-18T12:03:29.0640811Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0641117Z               "line": 8674
2026-06-18T12:03:29.0641401Z             },
2026-06-18T12:03:29.0641684Z             {
2026-06-18T12:03:29.0642043Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0642343Z               "line": 9263
2026-06-18T12:03:29.0642634Z             },
2026-06-18T12:03:29.0642924Z             {
2026-06-18T12:03:29.0643277Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0643597Z               "line": 9379
2026-06-18T12:03:29.0643873Z             }
2026-06-18T12:03:29.0644163Z           ]
2026-06-18T12:03:29.0644435Z         }
2026-06-18T12:03:29.0644722Z       }
2026-06-18T12:03:29.0645007Z     },
2026-06-18T12:03:29.0645275Z     {
2026-06-18T12:03:29.0645580Z       "id": "REQ-EP-6",
2026-06-18T12:03:29.0650288Z       "title": "Gateway type acceptance: a Gateway-typed perch binds (api bind --type, open type system — un-hardcode the live_agent default), advertises/addressable like any endpoint, owns shells (owner validation not agent-family-gated), subscribes to digests, and is the user-msg identity gate's user-backed origin (REQ-MSG-5); in-tree mock-gateway fixture (R-DOCS-2 pattern, no downstream adapter code). Cross-node WAN Gateway-origin (registry endpoint_type trust) tracked by REQ-MSG-6",
2026-06-18T12:03:29.0650646Z       "requiredStages": [
2026-06-18T12:03:29.0650936Z         "doc",
2026-06-18T12:03:29.0651223Z         "impl",
2026-06-18T12:03:29.0651523Z         "unit"
2026-06-18T12:03:29.0651799Z       ],
2026-06-18T12:03:29.0652097Z       "stages": {
2026-06-18T12:03:29.0652389Z         "doc": {
2026-06-18T12:03:29.0652703Z           "complete": true,
2026-06-18T12:03:29.0653003Z           "evidence": [
2026-06-18T12:03:29.0653289Z             {
2026-06-18T12:03:29.0653623Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.0653924Z               "line": 227
2026-06-18T12:03:29.0654215Z             }
2026-06-18T12:03:29.0654521Z           ]
2026-06-18T12:03:29.0654794Z         },
2026-06-18T12:03:29.0655085Z         "impl": {
2026-06-18T12:03:29.0655395Z           "complete": true,
2026-06-18T12:03:29.0655700Z           "evidence": [
2026-06-18T12:03:29.0655977Z             {
2026-06-18T12:03:29.0656373Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.0656683Z               "line": 203
2026-06-18T12:03:29.0656954Z             }
2026-06-18T12:03:29.0657242Z           ]
2026-06-18T12:03:29.0657520Z         },
2026-06-18T12:03:29.0657814Z         "int": {
2026-06-18T12:03:29.0658125Z           "complete": true,
2026-06-18T12:03:29.0658430Z           "evidence": [
2026-06-18T12:03:29.0658716Z             {
2026-06-18T12:03:29.0659188Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-18T12:03:29.0659493Z               "line": 18
2026-06-18T12:03:29.0659769Z             }
2026-06-18T12:03:29.0660049Z           ]
2026-06-18T12:03:29.0660325Z         },
2026-06-18T12:03:29.0660625Z         "unit": {
2026-06-18T12:03:29.0660930Z           "complete": true,
2026-06-18T12:03:29.0661230Z           "evidence": [
2026-06-18T12:03:29.0661501Z             {
2026-06-18T12:03:29.0661927Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.0662256Z               "line": 555
2026-06-18T12:03:29.0662559Z             },
2026-06-18T12:03:29.0662853Z             {
2026-06-18T12:03:29.0663258Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.0663573Z               "line": 787
2026-06-18T12:03:29.0663996Z             }
2026-06-18T12:03:29.0664293Z           ]
2026-06-18T12:03:29.0664598Z         }
2026-06-18T12:03:29.0664883Z       }
2026-06-18T12:03:29.0665161Z     },
2026-06-18T12:03:29.0665427Z     {
2026-06-18T12:03:29.0665732Z       "id": "REQ-EP-7",
2026-06-18T12:03:29.0671055Z       "title": "Durable live-role.md: a per-agent broad-purpose statement in tracked/agents/<id>/ beside live-context.md (replicates with the mind on the same a-<id> branch); renders FIRST at start-transition context injection (role -> live-context -> project-context); SOLE writer `spt endpoint role --overwrite <file>` — mechanical no-automated-writer guarantee (echo-commune ingest / signoff / Psyche reconcile structurally exclude it). The user-backed-origin hard gate on the writer is a deferred later tightening (rides the user-msg identity plumbing)",
2026-06-18T12:03:29.0671500Z       "requiredStages": [
2026-06-18T12:03:29.0671795Z         "doc",
2026-06-18T12:03:29.0672091Z         "impl",
2026-06-18T12:03:29.0672377Z         "unit"
2026-06-18T12:03:29.0672663Z       ],
2026-06-18T12:03:29.0672948Z       "stages": {
2026-06-18T12:03:29.0673236Z         "doc": {
2026-06-18T12:03:29.0673546Z           "complete": true,
2026-06-18T12:03:29.0673852Z           "evidence": [
2026-06-18T12:03:29.0674133Z             {
2026-06-18T12:03:29.0674457Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.0674757Z               "line": 472
2026-06-18T12:03:29.0675045Z             }
2026-06-18T12:03:29.0675345Z           ]
2026-06-18T12:03:29.0675626Z         },
2026-06-18T12:03:29.0675920Z         "impl": {
2026-06-18T12:03:29.0676220Z           "complete": true,
2026-06-18T12:03:29.0676524Z           "evidence": [
2026-06-18T12:03:29.0676811Z             {
2026-06-18T12:03:29.0677208Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.0677508Z               "line": 505
2026-06-18T12:03:29.0677794Z             },
2026-06-18T12:03:29.0678083Z             {
2026-06-18T12:03:29.0678477Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.0678782Z               "line": 87
2026-06-18T12:03:29.0679145Z             },
2026-06-18T12:03:29.0679440Z             {
2026-06-18T12:03:29.0679874Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.0680171Z               "line": 81
2026-06-18T12:03:29.0680462Z             },
2026-06-18T12:03:29.0680753Z             {
2026-06-18T12:03:29.0681169Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.0681487Z               "line": 166
2026-06-18T12:03:29.0681769Z             },
2026-06-18T12:03:29.0682050Z             {
2026-06-18T12:03:29.0682408Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0682714Z               "line": 1533
2026-06-18T12:03:29.0682995Z             }
2026-06-18T12:03:29.0683276Z           ]
2026-06-18T12:03:29.0683973Z         },
2026-06-18T12:03:29.0684613Z         "int": {
2026-06-18T12:03:29.0689767Z           "complete": false,
2026-06-18T12:03:29.0690587Z           "evidence": []
2026-06-18T12:03:29.0691308Z         },
2026-06-18T12:03:29.0691933Z         "unit": {
2026-06-18T12:03:29.0692620Z           "complete": true,
2026-06-18T12:03:29.0693377Z           "evidence": [
2026-06-18T12:03:29.0694082Z             {
2026-06-18T12:03:29.0694882Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.0695836Z               "line": 623
2026-06-18T12:03:29.0696564Z             },
2026-06-18T12:03:29.0697208Z             {
2026-06-18T12:03:29.0697926Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.0698847Z               "line": 212
2026-06-18T12:03:29.0699621Z             },
2026-06-18T12:03:29.0700265Z             {
2026-06-18T12:03:29.0700990Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.0701911Z               "line": 307
2026-06-18T12:03:29.0702627Z             },
2026-06-18T12:03:29.0703261Z             {
2026-06-18T12:03:29.0703961Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0705021Z               "line": 7563
2026-06-18T12:03:29.0705747Z             },
2026-06-18T12:03:29.0706396Z             {
2026-06-18T12:03:29.0707110Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.0707997Z               "line": 7590
2026-06-18T12:03:29.0708750Z             }
2026-06-18T12:03:29.0709445Z           ]
2026-06-18T12:03:29.0710052Z         }
2026-06-18T12:03:29.0710659Z       }
2026-06-18T12:03:29.0711378Z     },
2026-06-18T12:03:29.0711974Z     {
2026-06-18T12:03:29.0712607Z       "id": "REQ-FRONT-1",
2026-06-18T12:03:29.0713630Z       "title": "Day-one launcher/manager frontend (list/launch/attach/init)",
2026-06-18T12:03:29.0714770Z       "requiredStages": [],
2026-06-18T12:03:29.0715520Z       "stages": {
2026-06-18T12:03:29.0716187Z         "doc": {
2026-06-18T12:03:29.0716874Z           "complete": false,
2026-06-18T12:03:29.0717637Z           "evidence": []
2026-06-18T12:03:29.0718347Z         },
2026-06-18T12:03:29.0719038Z         "impl": {
2026-06-18T12:03:29.0719734Z           "complete": false,
2026-06-18T12:03:29.0720496Z           "evidence": []
2026-06-18T12:03:29.0721195Z         },
2026-06-18T12:03:29.0721805Z         "int": {
2026-06-18T12:03:29.0722486Z           "complete": false,
2026-06-18T12:03:29.0723248Z           "evidence": []
2026-06-18T12:03:29.0723952Z         },
2026-06-18T12:03:29.0724577Z         "unit": {
2026-06-18T12:03:29.0725255Z           "complete": false,
2026-06-18T12:03:29.0726027Z           "evidence": []
2026-06-18T12:03:29.0726733Z         }
2026-06-18T12:03:29.0727343Z       }
2026-06-18T12:03:29.0727934Z     },
2026-06-18T12:03:29.0728531Z     {
2026-06-18T12:03:29.0729288Z       "id": "REQ-HAZARD-BRAIN-RESPAWN-PATH",
2026-06-18T12:03:29.0737776Z       "title": "The broker respawns the brain onto the APPLIED bytes, not the renamed old binary: the candidate-binary default is the canonical exe path captured ONCE at broker start, never a per-spawn std::env::current_exe() — on Linux current_exe (readlink /proc/self/exe) is inode-tracking and follows the `apply` rename (spt -> spt.old-N), so a resident broker would respawn the brain onto OLD bytes while recording `applied` (Windows GetModuleFileName is path-at-start, so Windows was green; ADR-0018 Q3 silently assumed path-string semantics). Backstop: promotion gates on bytes — a trial promotes only if brain.ready exe_hash == the staged artifact hash for this platform, else auto-rollback + loud notif (readiness != new-bytes was the false-success that recorded applied:8 over a v0.4.0 brain on kitsubito, 2026-06-11). KNOWN-HAZARDS 6.11.",
2026-06-18T12:03:29.0745788Z       "requiredStages": [
2026-06-18T12:03:29.0746511Z         "doc",
2026-06-18T12:03:29.0747157Z         "impl",
2026-06-18T12:03:29.0747801Z         "unit",
2026-06-18T12:03:29.0748445Z         "int"
2026-06-18T12:03:29.0749160Z       ],
2026-06-18T12:03:29.0749770Z       "stages": {
2026-06-18T12:03:29.0750432Z         "doc": {
2026-06-18T12:03:29.0751104Z           "complete": true,
2026-06-18T12:03:29.0751868Z           "evidence": [
2026-06-18T12:03:29.0752566Z             {
2026-06-18T12:03:29.0753270Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.0754162Z               "line": 333
2026-06-18T12:03:29.0754858Z             }
2026-06-18T12:03:29.0755494Z           ]
2026-06-18T12:03:29.0756124Z         },
2026-06-18T12:03:29.0756729Z         "impl": {
2026-06-18T12:03:29.0757405Z           "complete": true,
2026-06-18T12:03:29.0758165Z           "evidence": [
2026-06-18T12:03:29.0758843Z             {
2026-06-18T12:03:29.0759672Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0760629Z               "line": 494
2026-06-18T12:03:29.0761326Z             },
2026-06-18T12:03:29.0761951Z             {
2026-06-18T12:03:29.0762708Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0763656Z               "line": 499
2026-06-18T12:03:29.0764365Z             },
2026-06-18T12:03:29.0764995Z             {
2026-06-18T12:03:29.0765926Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0766875Z               "line": 874
2026-06-18T12:03:29.0767594Z             },
2026-06-18T12:03:29.0768222Z             {
2026-06-18T12:03:29.0769060Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0770024Z               "line": 915
2026-06-18T12:03:29.0770735Z             },
2026-06-18T12:03:29.0771377Z             {
2026-06-18T12:03:29.0772244Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0773196Z               "line": 926
2026-06-18T12:03:29.0773905Z             },
2026-06-18T12:03:29.0774525Z             {
2026-06-18T12:03:29.0775292Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.0776229Z               "line": 358
2026-06-18T12:03:29.0776943Z             }
2026-06-18T12:03:29.0777582Z           ]
2026-06-18T12:03:29.0778192Z         },
2026-06-18T12:03:29.0778805Z         "int": {
2026-06-18T12:03:29.0779562Z           "complete": true,
2026-06-18T12:03:29.0780303Z           "evidence": [
2026-06-18T12:03:29.0780994Z             {
2026-06-18T12:03:29.0781778Z               "path": "crates/spt/tests/brain_respawn_rename.rs",
2026-06-18T12:03:29.0782770Z               "line": 30
2026-06-18T12:03:29.0783473Z             }
2026-06-18T12:03:29.0784108Z           ]
2026-06-18T12:03:29.0784722Z         },
2026-06-18T12:03:29.0785337Z         "unit": {
2026-06-18T12:03:29.0786021Z           "complete": true,
2026-06-18T12:03:29.0786771Z           "evidence": [
2026-06-18T12:03:29.0787461Z             {
2026-06-18T12:03:29.0788223Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0789243Z               "line": 1493
2026-06-18T12:03:29.0789961Z             },
2026-06-18T12:03:29.0790595Z             {
2026-06-18T12:03:29.0791362Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0792301Z               "line": 1518
2026-06-18T12:03:29.0793011Z             },
2026-06-18T12:03:29.0793645Z             {
2026-06-18T12:03:29.0794402Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0795360Z               "line": 1535
2026-06-18T12:03:29.0796093Z             },
2026-06-18T12:03:29.0796727Z             {
2026-06-18T12:03:29.0797491Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0798440Z               "line": 1578
2026-06-18T12:03:29.0799237Z             }
2026-06-18T12:03:29.0799870Z           ]
2026-06-18T12:03:29.0800479Z         }
2026-06-18T12:03:29.0801094Z       }
2026-06-18T12:03:29.0801699Z     },
2026-06-18T12:03:29.0802305Z     {
2026-06-18T12:03:29.0803090Z       "id": "REQ-HAZARD-BRAIN-RESTART-LIFECYCLE-REHYDRATE",
2026-06-18T12:03:29.0812058Z       "title": "B4 (deepest): a bare brain restart (broker survives) REHYDRATES the live-agent lifecycle so post-restart endpoints are hosted + attachable. Today resume_sessions (brainproc.rs:186, brain.rs:797-809) re-subscribes to the broker's PTY sessions but ALL BrainLifecycle instances (lifecycle.rs:58-130; the ephemeral brain.rs:254-275) are LOST on restart → a post-restart live endpoint gets no livehost → its Psyche is never (re)hosted and new spawns die / can't attach until a FULL daemon reset (operator: perri's brain kill+restart wedged everything until a full daemon kill). FIX: on brain startup, rebuild a BrainLifecycle per resumed live-capable session — load the manifest from the adapter registry → instantiate → start the pulse — the rehydrate the resume no-op cannot do. Composes with B2 (the reconcile re-hosts from the honest on-disk status after rehydrate). (v0.12.0)",
2026-06-18T12:03:29.0820649Z       "requiredStages": [],
2026-06-18T12:03:29.0821445Z       "stages": {
2026-06-18T12:03:29.0822171Z         "doc": {
2026-06-18T12:03:29.0822910Z           "complete": false,
2026-06-18T12:03:29.0823728Z           "evidence": []
2026-06-18T12:03:29.0824506Z         },
2026-06-18T12:03:29.0825192Z         "impl": {
2026-06-18T12:03:29.0825935Z           "complete": false,
2026-06-18T12:03:29.0826948Z           "evidence": []
2026-06-18T12:03:29.0827730Z         },
2026-06-18T12:03:29.0828351Z         "int": {
2026-06-18T12:03:29.0829106Z           "complete": false,
2026-06-18T12:03:29.0829879Z           "evidence": []
2026-06-18T12:03:29.0830589Z         },
2026-06-18T12:03:29.0831204Z         "unit": {
2026-06-18T12:03:29.0831882Z           "complete": false,
2026-06-18T12:03:29.0832644Z           "evidence": []
2026-06-18T12:03:29.0833494Z         }
2026-06-18T12:03:29.0834105Z       }
2026-06-18T12:03:29.0834747Z     },
2026-06-18T12:03:29.0835381Z     {
2026-06-18T12:03:29.0836162Z       "id": "REQ-HAZARD-BRAIN-RESTART-PSYCHE-DUP",
2026-06-18T12:03:29.0848937Z       "title": "A bare brain restart leaves EXACTLY ONE `{id}-psyche` process per endpoint — no duplicate. On an abrupt brain death stop_host never runs (the LiveSet + owned child handles die with the brain) and Breap's job/group only reaps at DAEMON stop, so the PRIOR brain's Psyche stays ALIVE; the respawned brain's reconcile re-hosts a SECOND Psyche and overwrites the `{id}-psyche` perch pid, leaving the old one untracked + alive = a duplicate that lingers until daemon-stop (the operator's 'brain kill+restart wedged everything'). FIX: at brain start, BEFORE the first reconcile re-hosts, reap any pre-existing `{id}-psyche` orphan — ID-SPECIFICALLY (recycle-safe on the shared box, where sibling agents share the `claude` basename): scoped-kill the recorded pid ONLY IF it is alive AND its exe basename == the adapter's psyche program (normalize_basename) AND its COMMAND LINE contains the full psyche id `<id>-psyche` (baked via {id}); a sibling never carries THIS id, and any unreadable signal FAILS SAFE (decline to reap — a missed dup is bounded by Breap, a wrong-kill is catastrophic). CAVEAT: the cmdline carries `<id>-psyche` only when the adapter's psyche_init.command uses {id} (the norm); a non-{id} adapter safely MISSES the reap (today's behavior, Breap bounds it) — never a wrong-kill. (v0.12.0)",
2026-06-18T12:03:29.0861501Z       "requiredStages": [
2026-06-18T12:03:29.0862307Z         "impl",
2026-06-18T12:03:29.0863059Z         "unit",
2026-06-18T12:03:29.0863705Z         "int"
2026-06-18T12:03:29.0864344Z       ],
2026-06-18T12:03:29.0864954Z       "stages": {
2026-06-18T12:03:29.0865603Z         "doc": {
2026-06-18T12:03:29.0866269Z           "complete": false,
2026-06-18T12:03:29.0867019Z           "evidence": []
2026-06-18T12:03:29.0867725Z         },
2026-06-18T12:03:29.0868347Z         "impl": {
2026-06-18T12:03:29.0869094Z           "complete": true,
2026-06-18T12:03:29.0869838Z           "evidence": [
2026-06-18T12:03:29.0870507Z             {
2026-06-18T12:03:29.0871261Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0872205Z               "line": 558
2026-06-18T12:03:29.0872919Z             },
2026-06-18T12:03:29.0873548Z             {
2026-06-18T12:03:29.0874308Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0875248Z               "line": 582
2026-06-18T12:03:29.0875964Z             },
2026-06-18T12:03:29.0876601Z             {
2026-06-18T12:03:29.0877355Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0878289Z               "line": 608
2026-06-18T12:03:29.0879067Z             },
2026-06-18T12:03:29.0879711Z             {
2026-06-18T12:03:29.0880452Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0881386Z               "line": 667
2026-06-18T12:03:29.0882093Z             },
2026-06-18T12:03:29.0882722Z             {
2026-06-18T12:03:29.0883455Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.0884351Z               "line": 89
2026-06-18T12:03:29.0885046Z             },
2026-06-18T12:03:29.0885688Z             {
2026-06-18T12:03:29.0886418Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.0887309Z               "line": 134
2026-06-18T12:03:29.0888009Z             }
2026-06-18T12:03:29.0888629Z           ]
2026-06-18T12:03:29.0889467Z         },
2026-06-18T12:03:29.0890091Z         "int": {
2026-06-18T12:03:29.0890768Z           "complete": true,
2026-06-18T12:03:29.0891511Z           "evidence": [
2026-06-18T12:03:29.0892211Z             {
2026-06-18T12:03:29.0893053Z               "path": "crates/spt/tests/brain_restart_psyche_dup_e2e.rs",
2026-06-18T12:03:29.0894106Z               "line": 20
2026-06-18T12:03:29.0894806Z             }
2026-06-18T12:03:29.0895429Z           ]
2026-06-18T12:03:29.0896159Z         },
2026-06-18T12:03:29.0896770Z         "unit": {
2026-06-18T12:03:29.0897442Z           "complete": true,
2026-06-18T12:03:29.0898194Z           "evidence": [
2026-06-18T12:03:29.0898879Z             {
2026-06-18T12:03:29.0899711Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.0900642Z               "line": 988
2026-06-18T12:03:29.0901342Z             },
2026-06-18T12:03:29.0901971Z             {
2026-06-18T12:03:29.0902705Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.0903627Z               "line": 445
2026-06-18T12:03:29.0904328Z             }
2026-06-18T12:03:29.0904958Z           ]
2026-06-18T12:03:29.0905565Z         }
2026-06-18T12:03:29.0906161Z       }
2026-06-18T12:03:29.0906767Z     },
2026-06-18T12:03:29.0907353Z     {
2026-06-18T12:03:29.0908077Z       "id": "REQ-HAZARD-BROKER-PROCESS-ISOLATION",
2026-06-18T12:03:29.0916664Z       "title": "Broker and brain are separate processes: the broker runs as its own long-lived per-machine process that survives every brain restart, so a routine (brain-only) self-update restarts the brain onto the swapped binary while every hosted endpoint (PTY child, live QUIC conn, listening socket) stays untouched at the PROCESS level. The in-process-thread broker (daemon.rs:165-170) is a regression that silently unrealizes REQ-UPD-3 — apply degrades to an in-process Brain::handoff no-op and new code does not run until an unrelated restart (KNOWN-HAZARDS 6.7). Evidence must prove process-level survival (SPIKE-01/03 productionized as int: PTY child + live QUIC survive a brain-PROCESS restart onto a swapped binary), re-pointing the regression-masked in-process int tags currently on REQ-DAEMON-2 / REQ-UPD-3 (ADR-0018).",
2026-06-18T12:03:29.0924576Z       "requiredStages": [
2026-06-18T12:03:29.0925302Z         "doc",
2026-06-18T12:03:29.0925936Z         "impl",
2026-06-18T12:03:29.0926587Z         "unit",
2026-06-18T12:03:29.0927239Z         "int"
2026-06-18T12:03:29.0927854Z       ],
2026-06-18T12:03:29.0928484Z       "stages": {
2026-06-18T12:03:29.0929188Z         "doc": {
2026-06-18T12:03:29.0929860Z           "complete": true,
2026-06-18T12:03:29.0930603Z           "evidence": [
2026-06-18T12:03:29.0931281Z             {
2026-06-18T12:03:29.0931983Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.0932879Z               "line": 302
2026-06-18T12:03:29.0933591Z             }
2026-06-18T12:03:29.0934211Z           ]
2026-06-18T12:03:29.0934812Z         },
2026-06-18T12:03:29.0935427Z         "impl": {
2026-06-18T12:03:29.0936119Z           "complete": true,
2026-06-18T12:03:29.0936863Z           "evidence": [
2026-06-18T12:03:29.0937550Z             {
2026-06-18T12:03:29.0938323Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.0939359Z               "line": 108
2026-06-18T12:03:29.0940063Z             },
2026-06-18T12:03:29.0940687Z             {
2026-06-18T12:03:29.0941426Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0942357Z               "line": 795
2026-06-18T12:03:29.0943076Z             },
2026-06-18T12:03:29.0943715Z             {
2026-06-18T12:03:29.0944437Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.0945382Z               "line": 995
2026-06-18T12:03:29.0946102Z             },
2026-06-18T12:03:29.0946732Z             {
2026-06-18T12:03:29.0947488Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0948430Z               "line": 23
2026-06-18T12:03:29.0949202Z             },
2026-06-18T12:03:29.0949971Z             {
2026-06-18T12:03:29.0950746Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0951695Z               "line": 113
2026-06-18T12:03:29.0952406Z             },
2026-06-18T12:03:29.0953041Z             {
2026-06-18T12:03:29.0953795Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0954735Z               "line": 158
2026-06-18T12:03:29.0955439Z             },
2026-06-18T12:03:29.0956184Z             {
2026-06-18T12:03:29.0956953Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0957907Z               "line": 218
2026-06-18T12:03:29.0958614Z             },
2026-06-18T12:03:29.0959324Z             {
2026-06-18T12:03:29.0960092Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0961029Z               "line": 261
2026-06-18T12:03:29.0961746Z             },
2026-06-18T12:03:29.0962380Z             {
2026-06-18T12:03:29.0963137Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0964098Z               "line": 275
2026-06-18T12:03:29.0964802Z             },
2026-06-18T12:03:29.0965442Z             {
2026-06-18T12:03:29.0966199Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0967156Z               "line": 320
2026-06-18T12:03:29.0967861Z             },
2026-06-18T12:03:29.0968500Z             {
2026-06-18T12:03:29.0969330Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0970294Z               "line": 347
2026-06-18T12:03:29.0971006Z             },
2026-06-18T12:03:29.0971652Z             {
2026-06-18T12:03:29.0972411Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0973354Z               "line": 359
2026-06-18T12:03:29.0974061Z             },
2026-06-18T12:03:29.0974695Z             {
2026-06-18T12:03:29.0975439Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0976384Z               "line": 373
2026-06-18T12:03:29.0977110Z             },
2026-06-18T12:03:29.0977745Z             {
2026-06-18T12:03:29.0978516Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0979538Z               "line": 400
2026-06-18T12:03:29.0980244Z             },
2026-06-18T12:03:29.0980888Z             {
2026-06-18T12:03:29.0981655Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0982599Z               "line": 643
2026-06-18T12:03:29.0983314Z             },
2026-06-18T12:03:29.0983947Z             {
2026-06-18T12:03:29.0984711Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.0985661Z               "line": 989
2026-06-18T12:03:29.0986382Z             },
2026-06-18T12:03:29.0987012Z             {
2026-06-18T12:03:29.0987766Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0988704Z               "line": 179
2026-06-18T12:03:29.0989491Z             },
2026-06-18T12:03:29.0990136Z             {
2026-06-18T12:03:29.0990881Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0991831Z               "line": 591
2026-06-18T12:03:29.0992535Z             },
2026-06-18T12:03:29.0993164Z             {
2026-06-18T12:03:29.0993907Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.0999251Z               "line": 663
2026-06-18T12:03:29.0999999Z             },
2026-06-18T12:03:29.1000649Z             {
2026-06-18T12:03:29.1001403Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.1002362Z               "line": 675
2026-06-18T12:03:29.1003067Z             },
2026-06-18T12:03:29.1003715Z             {
2026-06-18T12:03:29.1004472Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.1005406Z               "line": 1159
2026-06-18T12:03:29.1006132Z             },
2026-06-18T12:03:29.1006776Z             {
2026-06-18T12:03:29.1007526Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1008454Z               "line": 183
2026-06-18T12:03:29.1009439Z             },
2026-06-18T12:03:29.1010074Z             {
2026-06-18T12:03:29.1010812Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1011729Z               "line": 260
2026-06-18T12:03:29.1012440Z             },
2026-06-18T12:03:29.1013068Z             {
2026-06-18T12:03:29.1013820Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1014746Z               "line": 271
2026-06-18T12:03:29.1015581Z             },
2026-06-18T12:03:29.1016213Z             {
2026-06-18T12:03:29.1016941Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1017861Z               "line": 324
2026-06-18T12:03:29.1018562Z             },
2026-06-18T12:03:29.1019245Z             {
2026-06-18T12:03:29.1019985Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1020901Z               "line": 56
2026-06-18T12:03:29.1021595Z             },
2026-06-18T12:03:29.1022218Z             {
2026-06-18T12:03:29.1022970Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1023892Z               "line": 188
2026-06-18T12:03:29.1024601Z             },
2026-06-18T12:03:29.1025217Z             {
2026-06-18T12:03:29.1025969Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T12:03:29.1026900Z               "line": 82
2026-06-18T12:03:29.1027591Z             },
2026-06-18T12:03:29.1028211Z             {
2026-06-18T12:03:29.1029013Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1029945Z               "line": 308
2026-06-18T12:03:29.1030641Z             },
2026-06-18T12:03:29.1031274Z             {
2026-06-18T12:03:29.1032002Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.1032926Z               "line": 424
2026-06-18T12:03:29.1033631Z             },
2026-06-18T12:03:29.1034256Z             {
2026-06-18T12:03:29.1034941Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1035810Z               "line": 1884
2026-06-18T12:03:29.1036510Z             }
2026-06-18T12:03:29.1037124Z           ]
2026-06-18T12:03:29.1037723Z         },
2026-06-18T12:03:29.1038329Z         "int": {
2026-06-18T12:03:29.1039110Z           "complete": true,
2026-06-18T12:03:29.1039856Z           "evidence": [
2026-06-18T12:03:29.1040538Z             {
2026-06-18T12:03:29.1041276Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-18T12:03:29.1042201Z               "line": 57
2026-06-18T12:03:29.1042908Z             },
2026-06-18T12:03:29.1043533Z             {
2026-06-18T12:03:29.1044268Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-18T12:03:29.1045184Z               "line": 41
2026-06-18T12:03:29.1045874Z             }
2026-06-18T12:03:29.1046488Z           ]
2026-06-18T12:03:29.1047094Z         },
2026-06-18T12:03:29.1047713Z         "unit": {
2026-06-18T12:03:29.1048373Z           "complete": true,
2026-06-18T12:03:29.1049184Z           "evidence": [
2026-06-18T12:03:29.1049870Z             {
2026-06-18T12:03:29.1050632Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.1051560Z               "line": 532
2026-06-18T12:03:29.1052257Z             },
2026-06-18T12:03:29.1052887Z             {
2026-06-18T12:03:29.1053646Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.1054585Z               "line": 756
2026-06-18T12:03:29.1055295Z             },
2026-06-18T12:03:29.1055919Z             {
2026-06-18T12:03:29.1056667Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1057616Z               "line": 1067
2026-06-18T12:03:29.1058325Z             },
2026-06-18T12:03:29.1059024Z             {
2026-06-18T12:03:29.1059783Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1060731Z               "line": 1101
2026-06-18T12:03:29.1061443Z             },
2026-06-18T12:03:29.1062067Z             {
2026-06-18T12:03:29.1062817Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1063769Z               "line": 1143
2026-06-18T12:03:29.1064596Z             },
2026-06-18T12:03:29.1065231Z             {
2026-06-18T12:03:29.1065984Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1066926Z               "line": 1215
2026-06-18T12:03:29.1067638Z             },
2026-06-18T12:03:29.1068263Z             {
2026-06-18T12:03:29.1069089Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1070023Z               "line": 1228
2026-06-18T12:03:29.1070863Z             },
2026-06-18T12:03:29.1071493Z             {
2026-06-18T12:03:29.1072238Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1073181Z               "line": 1251
2026-06-18T12:03:29.1073891Z             },
2026-06-18T12:03:29.1074522Z             {
2026-06-18T12:03:29.1075280Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1076220Z               "line": 1277
2026-06-18T12:03:29.1076936Z             },
2026-06-18T12:03:29.1077583Z             {
2026-06-18T12:03:29.1078326Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1079351Z               "line": 1291
2026-06-18T12:03:29.1080063Z             },
2026-06-18T12:03:29.1080692Z             {
2026-06-18T12:03:29.1081457Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1082399Z               "line": 1315
2026-06-18T12:03:29.1083112Z             },
2026-06-18T12:03:29.1083741Z             {
2026-06-18T12:03:29.1084513Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1085454Z               "line": 1447
2026-06-18T12:03:29.1086170Z             },
2026-06-18T12:03:29.1086809Z             {
2026-06-18T12:03:29.1087572Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1088506Z               "line": 1623
2026-06-18T12:03:29.1089301Z             },
2026-06-18T12:03:29.1089935Z             {
2026-06-18T12:03:29.1090681Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1091621Z               "line": 1678
2026-06-18T12:03:29.1092341Z             },
2026-06-18T12:03:29.1092982Z             {
2026-06-18T12:03:29.1093743Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1094682Z               "line": 1724
2026-06-18T12:03:29.1095406Z             },
2026-06-18T12:03:29.1096033Z             {
2026-06-18T12:03:29.1096797Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1097751Z               "line": 1769
2026-06-18T12:03:29.1098475Z             },
2026-06-18T12:03:29.1099166Z             {
2026-06-18T12:03:29.1099924Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1100868Z               "line": 1813
2026-06-18T12:03:29.1101585Z             },
2026-06-18T12:03:29.1102224Z             {
2026-06-18T12:03:29.1102986Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1103918Z               "line": 1855
2026-06-18T12:03:29.1104627Z             },
2026-06-18T12:03:29.1105262Z             {
2026-06-18T12:03:29.1105995Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.1106922Z               "line": 1493
2026-06-18T12:03:29.1107634Z             },
2026-06-18T12:03:29.1108259Z             {
2026-06-18T12:03:29.1109073Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1110002Z               "line": 217
2026-06-18T12:03:29.1110708Z             },
2026-06-18T12:03:29.1111334Z             {
2026-06-18T12:03:29.1112087Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1113017Z               "line": 233
2026-06-18T12:03:29.1113729Z             },
2026-06-18T12:03:29.1114358Z             {
2026-06-18T12:03:29.1115102Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1116028Z               "line": 254
2026-06-18T12:03:29.1116730Z             },
2026-06-18T12:03:29.1117360Z             {
2026-06-18T12:03:29.1118117Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1119234Z               "line": 265
2026-06-18T12:03:29.1119948Z             },
2026-06-18T12:03:29.1120601Z             {
2026-06-18T12:03:29.1121349Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1122285Z               "line": 278
2026-06-18T12:03:29.1122987Z             },
2026-06-18T12:03:29.1123621Z             {
2026-06-18T12:03:29.1124384Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1125428Z               "line": 289
2026-06-18T12:03:29.1126139Z             },
2026-06-18T12:03:29.1126783Z             {
2026-06-18T12:03:29.1127538Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1128469Z               "line": 301
2026-06-18T12:03:29.1129250Z             },
2026-06-18T12:03:29.1129873Z             {
2026-06-18T12:03:29.1130611Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1131537Z               "line": 312
2026-06-18T12:03:29.1132251Z             },
2026-06-18T12:03:29.1132883Z             {
2026-06-18T12:03:29.1133632Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1134539Z               "line": 323
2026-06-18T12:03:29.1135237Z             },
2026-06-18T12:03:29.1135861Z             {
2026-06-18T12:03:29.1136280Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1136575Z               "line": 332
2026-06-18T12:03:29.1136880Z             },
2026-06-18T12:03:29.1137158Z             {
2026-06-18T12:03:29.1137566Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1137874Z               "line": 342
2026-06-18T12:03:29.1138166Z             },
2026-06-18T12:03:29.1138451Z             {
2026-06-18T12:03:29.1138856Z               "path": "crates/spt-daemon/src/deadline.rs",
2026-06-18T12:03:29.1139242Z               "line": 358
2026-06-18T12:03:29.1139528Z             },
2026-06-18T12:03:29.1139819Z             {
2026-06-18T12:03:29.1140240Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1140547Z               "line": 758
2026-06-18T12:03:29.1140829Z             },
2026-06-18T12:03:29.1141110Z             {
2026-06-18T12:03:29.1141530Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1141825Z               "line": 794
2026-06-18T12:03:29.1142121Z             },
2026-06-18T12:03:29.1142402Z             {
2026-06-18T12:03:29.1142802Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.1143119Z               "line": 966
2026-06-18T12:03:29.1143405Z             },
2026-06-18T12:03:29.1143682Z             {
2026-06-18T12:03:29.1144083Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T12:03:29.1144392Z               "line": 144
2026-06-18T12:03:29.1144678Z             },
2026-06-18T12:03:29.1144969Z             {
2026-06-18T12:03:29.1145385Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T12:03:29.1145688Z               "line": 223
2026-06-18T12:03:29.1145986Z             },
2026-06-18T12:03:29.1146272Z             {
2026-06-18T12:03:29.1146684Z               "path": "crates/spt-daemon/tests/resume.rs",
2026-06-18T12:03:29.1146988Z               "line": 292
2026-06-18T12:03:29.1147264Z             },
2026-06-18T12:03:29.1147550Z             {
2026-06-18T12:03:29.1147948Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-18T12:03:29.1148255Z               "line": 17
2026-06-18T12:03:29.1148543Z             },
2026-06-18T12:03:29.1148829Z             {
2026-06-18T12:03:29.1149293Z               "path": "crates/spt/tests/brain_split.rs",
2026-06-18T12:03:29.1149598Z               "line": 104
2026-06-18T12:03:29.1149884Z             }
2026-06-18T12:03:29.1150165Z           ]
2026-06-18T12:03:29.1150456Z         }
2026-06-18T12:03:29.1150742Z       }
2026-06-18T12:03:29.1151032Z     },
2026-06-18T12:03:29.1151309Z     {
2026-06-18T12:03:29.1151684Z       "id": "REQ-HAZARD-BROKER-QUIC-DEADLINE",
2026-06-18T12:03:29.1161498Z       "title": "The broker bounds every brain-waiting QUIC op (dial / open_stream / send_stream) so a black-holed or dead peer fails PROMPTLY with an ORDINARY error the broker REPLIES, never an unbounded await. The bound (< the brain's 30s PUMP_PEER_IO_TIMEOUT so the BROKER fires first) surfaces to the pump as a normal broker error reply → peer_outcome's non-TimedOut arm → drop conn + redial next tick, the round CONTINUES and the heartbeat keeps advancing — it must NEVER manifest as the brain's own read-deadline (the A-half poison → supervised-restart path REQ-HAZARD-PUMP-IPC-DEADLINE guards). Exactly-once is preserved: a timed-out journaled op fails INSIDE its apply_once closure so no phantom conn_id/stream_id is recorded and a fresh tick re-dials cleanly. The happy path is unchanged (a live peer completes with zero added latency; the bound only bites a non-responsive peer). This is the ROOT-cause cure for the 2.2h hfenduleam pump wedge — a dead roster peer whose QUIC path the broker awaited unbounded — recurring on hfenduleam 2026-06-16.",
2026-06-18T12:03:29.1162011Z       "requiredStages": [
2026-06-18T12:03:29.1162302Z         "doc",
2026-06-18T12:03:29.1162602Z         "impl",
2026-06-18T12:03:29.1162874Z         "unit",
2026-06-18T12:03:29.1163156Z         "int"
2026-06-18T12:03:29.1163442Z       ],
2026-06-18T12:03:29.1163729Z       "stages": {
2026-06-18T12:03:29.1164023Z         "doc": {
2026-06-18T12:03:29.1164326Z           "complete": true,
2026-06-18T12:03:29.1164655Z           "evidence": [
2026-06-18T12:03:29.1164946Z             {
2026-06-18T12:03:29.1165317Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1165628Z               "line": 388
2026-06-18T12:03:29.1165915Z             }
2026-06-18T12:03:29.1166205Z           ]
2026-06-18T12:03:29.1166487Z         },
2026-06-18T12:03:29.1166775Z         "impl": {
2026-06-18T12:03:29.1167092Z           "complete": true,
2026-06-18T12:03:29.1167388Z           "evidence": [
2026-06-18T12:03:29.1167674Z             {
2026-06-18T12:03:29.1168103Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.1168399Z               "line": 773
2026-06-18T12:03:29.1168685Z             },
2026-06-18T12:03:29.1169029Z             {
2026-06-18T12:03:29.1169433Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.1169745Z               "line": 796
2026-06-18T12:03:29.1170031Z             }
2026-06-18T12:03:29.1170312Z           ]
2026-06-18T12:03:29.1170603Z         },
2026-06-18T12:03:29.1170880Z         "int": {
2026-06-18T12:03:29.1171199Z           "complete": true,
2026-06-18T12:03:29.1171495Z           "evidence": [
2026-06-18T12:03:29.1171776Z             {
2026-06-18T12:03:29.1172204Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T12:03:29.1172499Z               "line": 228
2026-06-18T12:03:29.1172791Z             },
2026-06-18T12:03:29.1173078Z             {
2026-06-18T12:03:29.1173487Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T12:03:29.1173797Z               "line": 468
2026-06-18T12:03:29.1174074Z             }
2026-06-18T12:03:29.1174368Z           ]
2026-06-18T12:03:29.1174648Z         },
2026-06-18T12:03:29.1174944Z         "unit": {
2026-06-18T12:03:29.1175253Z           "complete": true,
2026-06-18T12:03:29.1175563Z           "evidence": [
2026-06-18T12:03:29.1175840Z             {
2026-06-18T12:03:29.1176249Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.1176564Z               "line": 1495
2026-06-18T12:03:29.1176837Z             }
2026-06-18T12:03:29.1177123Z           ]
2026-06-18T12:03:29.1177402Z         }
2026-06-18T12:03:29.1177696Z       }
2026-06-18T12:03:29.1177976Z     },
2026-06-18T12:03:29.1178258Z     {
2026-06-18T12:03:29.1178640Z       "id": "REQ-HAZARD-BROKER-SEED-WIRE-SKEW",
2026-06-18T12:03:29.1190043Z       "title": "A daemon-state wire-format change (e.g. the v0.9.0 adapter-agnostic Seed) does NOT take effect until a DELIBERATE full broker restart: the broker serves the seed-control channel and is RESIDENT across a brain-only self-update (ADR-0004 no-terminate-during-update forbids auto-killing it), so a NEW-version CLI talking to a still-resident OLD broker fails the seed handshake — the old broker cannot deserialize the new Seed (its formerly-required `adapter` field is gone) and drops the conn without an ack, which surfaces to the CLI as a raw UnexpectedEof 'failed to fill whole buffer'. spt-core must (a) surface an ACTIONABLE diagnostic on that seed-ack EOF (name the stale-broker cause + the `spt daemon stop` fix — the broker restarts on the next api call), never the cryptic io error; and (b) document the operational rule (a deliberate broker restart is required on any daemon-state wire change — NOT automatic) + the FORWARD discipline (daemon-state/Seed schema changes stay additive + serde-default so a resident OLD broker tolerates a NEW CLI across a brain-only update; note this would NOT have rescued 0.9.0 itself, since the old broker's `adapter` was a required field). perri PREP-4 FINDING 1 (v0.9.0 CLI vs stale 0.8.x broker).",
2026-06-18T12:03:29.1190642Z       "requiredStages": [
2026-06-18T12:03:29.1190933Z         "doc",
2026-06-18T12:03:29.1191223Z         "impl",
2026-06-18T12:03:29.1191515Z         "unit"
2026-06-18T12:03:29.1191806Z       ],
2026-06-18T12:03:29.1192101Z       "stages": {
2026-06-18T12:03:29.1192386Z         "doc": {
2026-06-18T12:03:29.1192691Z           "complete": true,
2026-06-18T12:03:29.1193002Z           "evidence": [
2026-06-18T12:03:29.1193319Z             {
2026-06-18T12:03:29.1193692Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1193997Z               "line": 395
2026-06-18T12:03:29.1194278Z             }
2026-06-18T12:03:29.1194569Z           ]
2026-06-18T12:03:29.1194846Z         },
2026-06-18T12:03:29.1195136Z         "impl": {
2026-06-18T12:03:29.1195446Z           "complete": true,
2026-06-18T12:03:29.1195759Z           "evidence": [
2026-06-18T12:03:29.1196045Z             {
2026-06-18T12:03:29.1196435Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.1196750Z               "line": 75
2026-06-18T12:03:29.1197041Z             }
2026-06-18T12:03:29.1197327Z           ]
2026-06-18T12:03:29.1197609Z         },
2026-06-18T12:03:29.1197900Z         "int": {
2026-06-18T12:03:29.1198220Z           "complete": false,
2026-06-18T12:03:29.1198532Z           "evidence": []
2026-06-18T12:03:29.1198821Z         },
2026-06-18T12:03:29.1199208Z         "unit": {
2026-06-18T12:03:29.1199537Z           "complete": true,
2026-06-18T12:03:29.1199842Z           "evidence": [
2026-06-18T12:03:29.1200133Z             {
2026-06-18T12:03:29.1200533Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.1200829Z               "line": 601
2026-06-18T12:03:29.1201123Z             }
2026-06-18T12:03:29.1201406Z           ]
2026-06-18T12:03:29.1201692Z         }
2026-06-18T12:03:29.1201974Z       }
2026-06-18T12:03:29.1202255Z     },
2026-06-18T12:03:29.1202541Z     {
2026-06-18T12:03:29.1202903Z       "id": "REQ-HAZARD-CASCADE-WIPE-GUARD",
2026-06-18T12:03:29.1203504Z       "title": "No hard-delete of a parent hosting non-empty children (6.3)",
2026-06-18T12:03:29.1203828Z       "requiredStages": [
2026-06-18T12:03:29.1204123Z         "impl",
2026-06-18T12:03:29.1204405Z         "unit"
2026-06-18T12:03:29.1204691Z       ],
2026-06-18T12:03:29.1204987Z       "stages": {
2026-06-18T12:03:29.1205278Z         "doc": {
2026-06-18T12:03:29.1205598Z           "complete": false,
2026-06-18T12:03:29.1205913Z           "evidence": []
2026-06-18T12:03:29.1206196Z         },
2026-06-18T12:03:29.1206485Z         "impl": {
2026-06-18T12:03:29.1206800Z           "complete": true,
2026-06-18T12:03:29.1207109Z           "evidence": [
2026-06-18T12:03:29.1207400Z             {
2026-06-18T12:03:29.1207807Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.1208112Z               "line": 168
2026-06-18T12:03:29.1208407Z             },
2026-06-18T12:03:29.1208693Z             {
2026-06-18T12:03:29.1209158Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.1209605Z               "line": 18
2026-06-18T12:03:29.1209896Z             },
2026-06-18T12:03:29.1210183Z             {
2026-06-18T12:03:29.1210559Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.1210859Z               "line": 100
2026-06-18T12:03:29.1211149Z             }
2026-06-18T12:03:29.1211441Z           ]
2026-06-18T12:03:29.1211730Z         },
2026-06-18T12:03:29.1212134Z         "int": {
2026-06-18T12:03:29.1212453Z           "complete": false,
2026-06-18T12:03:29.1212754Z           "evidence": []
2026-06-18T12:03:29.1213044Z         },
2026-06-18T12:03:29.1213321Z         "unit": {
2026-06-18T12:03:29.1213636Z           "complete": true,
2026-06-18T12:03:29.1213942Z           "evidence": [
2026-06-18T12:03:29.1214223Z             {
2026-06-18T12:03:29.1214637Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.1214941Z               "line": 853
2026-06-18T12:03:29.1215232Z             },
2026-06-18T12:03:29.1215514Z             {
2026-06-18T12:03:29.1215899Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.1216200Z               "line": 161
2026-06-18T12:03:29.1216487Z             },
2026-06-18T12:03:29.1216776Z             {
2026-06-18T12:03:29.1217160Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.1217465Z               "line": 233
2026-06-18T12:03:29.1217752Z             }
2026-06-18T12:03:29.1218033Z           ]
2026-06-18T12:03:29.1218328Z         }
2026-06-18T12:03:29.1218595Z       }
2026-06-18T12:03:29.1218881Z     },
2026-06-18T12:03:29.1219253Z     {
2026-06-18T12:03:29.1219648Z       "id": "REQ-HAZARD-CHILD-CONSOLE-FLASH",
2026-06-18T12:03:29.1221109Z       "title": "Console-subsystem children of the console-less daemon spawn with CREATE_NO_WINDOW, or each spawn flashes a visible blank window on the user's desktop (5.8)",
2026-06-18T12:03:29.1221424Z       "requiredStages": [
2026-06-18T12:03:29.1221714Z         "impl",
2026-06-18T12:03:29.1222015Z         "unit"
2026-06-18T12:03:29.1222313Z       ],
2026-06-18T12:03:29.1222604Z       "stages": {
2026-06-18T12:03:29.1222900Z         "doc": {
2026-06-18T12:03:29.1223214Z           "complete": true,
2026-06-18T12:03:29.1223524Z           "evidence": [
2026-06-18T12:03:29.1223815Z             {
2026-06-18T12:03:29.1224168Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1224478Z               "line": 220
2026-06-18T12:03:29.1224769Z             }
2026-06-18T12:03:29.1225058Z           ]
2026-06-18T12:03:29.1225334Z         },
2026-06-18T12:03:29.1225625Z         "impl": {
2026-06-18T12:03:29.1225944Z           "complete": true,
2026-06-18T12:03:29.1226235Z           "evidence": [
2026-06-18T12:03:29.1226532Z             {
2026-06-18T12:03:29.1226955Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.1227268Z               "line": 315
2026-06-18T12:03:29.1227557Z             },
2026-06-18T12:03:29.1227843Z             {
2026-06-18T12:03:29.1228259Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.1228564Z               "line": 356
2026-06-18T12:03:29.1228840Z             },
2026-06-18T12:03:29.1229174Z             {
2026-06-18T12:03:29.1229581Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.1229891Z               "line": 578
2026-06-18T12:03:29.1230170Z             },
2026-06-18T12:03:29.1230453Z             {
2026-06-18T12:03:29.1230855Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.1231150Z               "line": 77
2026-06-18T12:03:29.1231426Z             }
2026-06-18T12:03:29.1231721Z           ]
2026-06-18T12:03:29.1232008Z         },
2026-06-18T12:03:29.1232298Z         "int": {
2026-06-18T12:03:29.1232622Z           "complete": false,
2026-06-18T12:03:29.1232930Z           "evidence": []
2026-06-18T12:03:29.1233216Z         },
2026-06-18T12:03:29.1233507Z         "unit": {
2026-06-18T12:03:29.1233827Z           "complete": true,
2026-06-18T12:03:29.1234245Z           "evidence": [
2026-06-18T12:03:29.1234522Z             {
2026-06-18T12:03:29.1234927Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.1235223Z               "line": 747
2026-06-18T12:03:29.1235513Z             },
2026-06-18T12:03:29.1235799Z             {
2026-06-18T12:03:29.1236213Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.1236523Z               "line": 785
2026-06-18T12:03:29.1236911Z             },
2026-06-18T12:03:29.1237201Z             {
2026-06-18T12:03:29.1237593Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.1237896Z               "line": 166
2026-06-18T12:03:29.1238175Z             }
2026-06-18T12:03:29.1238456Z           ]
2026-06-18T12:03:29.1238737Z         }
2026-06-18T12:03:29.1239081Z       }
2026-06-18T12:03:29.1239362Z     },
2026-06-18T12:03:29.1239635Z     {
2026-06-18T12:03:29.1240039Z       "id": "REQ-HAZARD-CONFLICT-BOTH-PRESERVED",
2026-06-18T12:03:29.1241972Z       "title": "A surfaced concurrent context pair is durably preserved (both versions, tracked artifacts) until a strictly dominating write clears it; no reconcile failure path discards an unmerged version (6.6, ADR-0013)",
2026-06-18T12:03:29.1242291Z       "requiredStages": [
2026-06-18T12:03:29.1242587Z         "impl",
2026-06-18T12:03:29.1242878Z         "unit"
2026-06-18T12:03:29.1243164Z       ],
2026-06-18T12:03:29.1243452Z       "stages": {
2026-06-18T12:03:29.1243743Z         "doc": {
2026-06-18T12:03:29.1244053Z           "complete": false,
2026-06-18T12:03:29.1244367Z           "evidence": []
2026-06-18T12:03:29.1244654Z         },
2026-06-18T12:03:29.1244936Z         "impl": {
2026-06-18T12:03:29.1245246Z           "complete": true,
2026-06-18T12:03:29.1245541Z           "evidence": [
2026-06-18T12:03:29.1245832Z             {
2026-06-18T12:03:29.1246250Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T12:03:29.1246555Z               "line": 22
2026-06-18T12:03:29.1246851Z             },
2026-06-18T12:03:29.1247131Z             {
2026-06-18T12:03:29.1247524Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.1247829Z               "line": 487
2026-06-18T12:03:29.1248115Z             },
2026-06-18T12:03:29.1248398Z             {
2026-06-18T12:03:29.1248797Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T12:03:29.1249165Z               "line": 17
2026-06-18T12:03:29.1249447Z             },
2026-06-18T12:03:29.1249747Z             {
2026-06-18T12:03:29.1250142Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T12:03:29.1250452Z               "line": 147
2026-06-18T12:03:29.1254231Z             },
2026-06-18T12:03:29.1254547Z             {
2026-06-18T12:03:29.1254999Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.1255299Z               "line": 226
2026-06-18T12:03:29.1255581Z             },
2026-06-18T12:03:29.1255858Z             {
2026-06-18T12:03:29.1256305Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.1256624Z               "line": 251
2026-06-18T12:03:29.1256901Z             },
2026-06-18T12:03:29.1257177Z             {
2026-06-18T12:03:29.1257601Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.1257906Z               "line": 277
2026-06-18T12:03:29.1258197Z             },
2026-06-18T12:03:29.1258474Z             {
2026-06-18T12:03:29.1258878Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.1259266Z               "line": 124
2026-06-18T12:03:29.1259552Z             },
2026-06-18T12:03:29.1259829Z             {
2026-06-18T12:03:29.1260240Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.1260550Z               "line": 224
2026-06-18T12:03:29.1260825Z             }
2026-06-18T12:03:29.1261122Z           ]
2026-06-18T12:03:29.1261397Z         },
2026-06-18T12:03:29.1261680Z         "int": {
2026-06-18T12:03:29.1261983Z           "complete": false,
2026-06-18T12:03:29.1262472Z           "evidence": []
2026-06-18T12:03:29.1262753Z         },
2026-06-18T12:03:29.1263044Z         "unit": {
2026-06-18T12:03:29.1263350Z           "complete": true,
2026-06-18T12:03:29.1263635Z           "evidence": [
2026-06-18T12:03:29.1263922Z             {
2026-06-18T12:03:29.1264331Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T12:03:29.1264629Z               "line": 63
2026-06-18T12:03:29.1264915Z             },
2026-06-18T12:03:29.1265306Z             {
2026-06-18T12:03:29.1265722Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T12:03:29.1266022Z               "line": 73
2026-06-18T12:03:29.1266293Z             },
2026-06-18T12:03:29.1266560Z             {
2026-06-18T12:03:29.1266976Z               "path": "crates/spt-daemon/src/reconcile.rs",
2026-06-18T12:03:29.1267274Z               "line": 85
2026-06-18T12:03:29.1267565Z             },
2026-06-18T12:03:29.1267842Z             {
2026-06-18T12:03:29.1268228Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T12:03:29.1268533Z               "line": 346
2026-06-18T12:03:29.1268819Z             },
2026-06-18T12:03:29.1269158Z             {
2026-06-18T12:03:29.1269562Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T12:03:29.1269865Z               "line": 281
2026-06-18T12:03:29.1270146Z             },
2026-06-18T12:03:29.1270427Z             {
2026-06-18T12:03:29.1270834Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T12:03:29.1271143Z               "line": 322
2026-06-18T12:03:29.1271424Z             },
2026-06-18T12:03:29.1271701Z             {
2026-06-18T12:03:29.1272102Z               "path": "crates/spt-live/src/reconcile.rs",
2026-06-18T12:03:29.1272405Z               "line": 360
2026-06-18T12:03:29.1272679Z             },
2026-06-18T12:03:29.1272956Z             {
2026-06-18T12:03:29.1273371Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.1273681Z               "line": 688
2026-06-18T12:03:29.1273967Z             },
2026-06-18T12:03:29.1274253Z             {
2026-06-18T12:03:29.1274665Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.1274967Z               "line": 397
2026-06-18T12:03:29.1275251Z             },
2026-06-18T12:03:29.1275532Z             {
2026-06-18T12:03:29.1275938Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.1276238Z               "line": 440
2026-06-18T12:03:29.1276529Z             }
2026-06-18T12:03:29.1276810Z           ]
2026-06-18T12:03:29.1277092Z         }
2026-06-18T12:03:29.1277377Z       }
2026-06-18T12:03:29.1277646Z     },
2026-06-18T12:03:29.1277921Z     {
2026-06-18T12:03:29.1278255Z       "id": "REQ-HAZARD-CONPTY-DSR",
2026-06-18T12:03:29.1279060Z       "title": "ConPTY reader must auto-answer DSR (ESC[6n) or all child output stalls (5.5)",
2026-06-18T12:03:29.1279384Z       "requiredStages": [
2026-06-18T12:03:29.1279675Z         "impl",
2026-06-18T12:03:29.1279966Z         "unit"
2026-06-18T12:03:29.1280245Z       ],
2026-06-18T12:03:29.1280541Z       "stages": {
2026-06-18T12:03:29.1280826Z         "doc": {
2026-06-18T12:03:29.1281127Z           "complete": false,
2026-06-18T12:03:29.1281437Z           "evidence": []
2026-06-18T12:03:29.1281713Z         },
2026-06-18T12:03:29.1282004Z         "impl": {
2026-06-18T12:03:29.1282314Z           "complete": true,
2026-06-18T12:03:29.1282614Z           "evidence": [
2026-06-18T12:03:29.1282894Z             {
2026-06-18T12:03:29.1283287Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T12:03:29.1283583Z               "line": 169
2026-06-18T12:03:29.1283869Z             }
2026-06-18T12:03:29.1284146Z           ]
2026-06-18T12:03:29.1284418Z         },
2026-06-18T12:03:29.1284704Z         "int": {
2026-06-18T12:03:29.1285014Z           "complete": true,
2026-06-18T12:03:29.1285305Z           "evidence": [
2026-06-18T12:03:29.1285594Z             {
2026-06-18T12:03:29.1285969Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-18T12:03:29.1286388Z               "line": 44
2026-06-18T12:03:29.1286675Z             },
2026-06-18T12:03:29.1286960Z             {
2026-06-18T12:03:29.1287333Z               "path": "crates/spt-term/tests/dsr.rs",
2026-06-18T12:03:29.1287627Z               "line": 66
2026-06-18T12:03:29.1287910Z             }
2026-06-18T12:03:29.1288183Z           ]
2026-06-18T12:03:29.1288462Z         },
2026-06-18T12:03:29.1288753Z         "unit": {
2026-06-18T12:03:29.1289244Z           "complete": true,
2026-06-18T12:03:29.1289549Z           "evidence": [
2026-06-18T12:03:29.1289830Z             {
2026-06-18T12:03:29.1290221Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T12:03:29.1290526Z               "line": 186
2026-06-18T12:03:29.1290814Z             },
2026-06-18T12:03:29.1291096Z             {
2026-06-18T12:03:29.1291486Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T12:03:29.1291778Z               "line": 238
2026-06-18T12:03:29.1292063Z             },
2026-06-18T12:03:29.1292359Z             {
2026-06-18T12:03:29.1292735Z               "path": "crates/spt-term/src/reader.rs",
2026-06-18T12:03:29.1293035Z               "line": 266
2026-06-18T12:03:29.1293304Z             }
2026-06-18T12:03:29.1293583Z           ]
2026-06-18T12:03:29.1293871Z         }
2026-06-18T12:03:29.1294143Z       }
2026-06-18T12:03:29.1294425Z     },
2026-06-18T12:03:29.1294701Z     {
2026-06-18T12:03:29.1295082Z       "id": "REQ-HAZARD-DAEMON-HOSTED-LIVENESS",
2026-06-18T12:03:29.1296530Z       "title": "Daemon-hosted perches (Psyche, spt-hosted Self) derive liveness from the daemon endpoint table + info.json status, never is_process_alive(info.pid) (2.5)",
2026-06-18T12:03:29.1296845Z       "requiredStages": [
2026-06-18T12:03:29.1297135Z         "impl",
2026-06-18T12:03:29.1297421Z         "unit",
2026-06-18T12:03:29.1297702Z         "int"
2026-06-18T12:03:29.1297978Z       ],
2026-06-18T12:03:29.1298269Z       "stages": {
2026-06-18T12:03:29.1298556Z         "doc": {
2026-06-18T12:03:29.1298883Z           "complete": false,
2026-06-18T12:03:29.1299255Z           "evidence": []
2026-06-18T12:03:29.1299522Z         },
2026-06-18T12:03:29.1299823Z         "impl": {
2026-06-18T12:03:29.1300124Z           "complete": true,
2026-06-18T12:03:29.1300423Z           "evidence": [
2026-06-18T12:03:29.1300701Z             {
2026-06-18T12:03:29.1301109Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1301412Z               "line": 178
2026-06-18T12:03:29.1301703Z             },
2026-06-18T12:03:29.1301984Z             {
2026-06-18T12:03:29.1302380Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1302685Z               "line": 226
2026-06-18T12:03:29.1302966Z             },
2026-06-18T12:03:29.1303257Z             {
2026-06-18T12:03:29.1303638Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.1303938Z               "line": 79
2026-06-18T12:03:29.1304228Z             },
2026-06-18T12:03:29.1304509Z             {
2026-06-18T12:03:29.1304890Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.1305185Z               "line": 52
2026-06-18T12:03:29.1305462Z             },
2026-06-18T12:03:29.1305735Z             {
2026-06-18T12:03:29.1306116Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1306416Z               "line": 251
2026-06-18T12:03:29.1306691Z             },
2026-06-18T12:03:29.1306979Z             {
2026-06-18T12:03:29.1307376Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1307681Z               "line": 27
2026-06-18T12:03:29.1307963Z             },
2026-06-18T12:03:29.1308233Z             {
2026-06-18T12:03:29.1308640Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1308926Z               "line": 79
2026-06-18T12:03:29.1309293Z             },
2026-06-18T12:03:29.1309578Z             {
2026-06-18T12:03:29.1309974Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1310279Z               "line": 102
2026-06-18T12:03:29.1310669Z             },
2026-06-18T12:03:29.1310955Z             {
2026-06-18T12:03:29.1311351Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.1311646Z               "line": 116
2026-06-18T12:03:29.1311930Z             }
2026-06-18T12:03:29.1312211Z           ]
2026-06-18T12:03:29.1312493Z         },
2026-06-18T12:03:29.1312784Z         "int": {
2026-06-18T12:03:29.1313098Z           "complete": true,
2026-06-18T12:03:29.1313498Z           "evidence": [
2026-06-18T12:03:29.1313785Z             {
2026-06-18T12:03:29.1314208Z               "path": "crates/spt-daemon/tests/daemon_e2e.rs",
2026-06-18T12:03:29.1314499Z               "line": 43
2026-06-18T12:03:29.1314774Z             }
2026-06-18T12:03:29.1315045Z           ]
2026-06-18T12:03:29.1315326Z         },
2026-06-18T12:03:29.1315622Z         "unit": {
2026-06-18T12:03:29.1315927Z           "complete": true,
2026-06-18T12:03:29.1316222Z           "evidence": [
2026-06-18T12:03:29.1316489Z             {
2026-06-18T12:03:29.1316914Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1317203Z               "line": 678
2026-06-18T12:03:29.1317491Z             },
2026-06-18T12:03:29.1317768Z             {
2026-06-18T12:03:29.1318140Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1318445Z               "line": 469
2026-06-18T12:03:29.1318746Z             },
2026-06-18T12:03:29.1319108Z             {
2026-06-18T12:03:29.1319524Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1319830Z               "line": 124
2026-06-18T12:03:29.1320108Z             },
2026-06-18T12:03:29.1320395Z             {
2026-06-18T12:03:29.1320796Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1321092Z               "line": 143
2026-06-18T12:03:29.1321373Z             },
2026-06-18T12:03:29.1321653Z             {
2026-06-18T12:03:29.1322051Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1322353Z               "line": 160
2026-06-18T12:03:29.1322642Z             },
2026-06-18T12:03:29.1322928Z             {
2026-06-18T12:03:29.1323315Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1323649Z               "line": 187
2026-06-18T12:03:29.1323929Z             },
2026-06-18T12:03:29.1324220Z             {
2026-06-18T12:03:29.1324612Z               "path": "crates/spt-store/src/liveness.rs",
2026-06-18T12:03:29.1324927Z               "line": 206
2026-06-18T12:03:29.1325206Z             },
2026-06-18T12:03:29.1325480Z             {
2026-06-18T12:03:29.1325877Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.1326182Z               "line": 229
2026-06-18T12:03:29.1326468Z             }
2026-06-18T12:03:29.1326758Z           ]
2026-06-18T12:03:29.1327035Z         }
2026-06-18T12:03:29.1327320Z       }
2026-06-18T12:03:29.1327598Z     },
2026-06-18T12:03:29.1327873Z     {
2026-06-18T12:03:29.1328272Z       "id": "REQ-HAZARD-DAEMON-SCHED-NONBLOCKING",
2026-06-18T12:03:29.1330592Z       "title": "Per-agent pulse/psyche/echo-commune scheduling must not serialize across agents: each agent's bounded LLM call (echo-commune summarizer, Psyche turn) runs off the shared scheduler so one slow/hung call cannot stall another agent's tick (7.4)",
2026-06-18T12:03:29.1330916Z       "requiredStages": [
2026-06-18T12:03:29.1331203Z         "impl",
2026-06-18T12:03:29.1331494Z         "unit"
2026-06-18T12:03:29.1331827Z       ],
2026-06-18T12:03:29.1332138Z       "stages": {
2026-06-18T12:03:29.1332428Z         "doc": {
2026-06-18T12:03:29.1332743Z           "complete": false,
2026-06-18T12:03:29.1333060Z           "evidence": []
2026-06-18T12:03:29.1333351Z         },
2026-06-18T12:03:29.1333651Z         "impl": {
2026-06-18T12:03:29.1333990Z           "complete": true,
2026-06-18T12:03:29.1334299Z           "evidence": [
2026-06-18T12:03:29.1334590Z             {
2026-06-18T12:03:29.1335004Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.1335530Z               "line": 622
2026-06-18T12:03:29.1335828Z             },
2026-06-18T12:03:29.1336122Z             {
2026-06-18T12:03:29.1336528Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.1336833Z               "line": 840
2026-06-18T12:03:29.1337133Z             }
2026-06-18T12:03:29.1337434Z           ]
2026-06-18T12:03:29.1337716Z         },
2026-06-18T12:03:29.1338001Z         "int": {
2026-06-18T12:03:29.1338414Z           "complete": false,
2026-06-18T12:03:29.1338717Z           "evidence": []
2026-06-18T12:03:29.1339066Z         },
2026-06-18T12:03:29.1339352Z         "unit": {
2026-06-18T12:03:29.1339676Z           "complete": true,
2026-06-18T12:03:29.1339977Z           "evidence": [
2026-06-18T12:03:29.1340253Z             {
2026-06-18T12:03:29.1340701Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-18T12:03:29.1340998Z               "line": 161
2026-06-18T12:03:29.1341292Z             }
2026-06-18T12:03:29.1341587Z           ]
2026-06-18T12:03:29.1341873Z         }
2026-06-18T12:03:29.1342154Z       }
2026-06-18T12:03:29.1342430Z     },
2026-06-18T12:03:29.1342712Z     {
2026-06-18T12:03:29.1343093Z       "id": "REQ-HAZARD-DAEMON-STOP-BARRIER",
2026-06-18T12:03:29.1348566Z       "title": "B3: `spt daemon stop` then an immediate `spt daemon start` does NOT race — stop fully completes before it returns. Today request_stop (seedmap.rs:240-255) returns on the KIND_STOPPING ack (sent seedmap.rs:174-176) BEFORE the seed socket unbinds, so a following is_running ping (daemon.rs:375) wins the exit window and start reports ALREADY_RUNNING (operator: daemon stop → STOPPED then start → ALREADY_RUNNING). FIX: unbind/stop-gate the seed socket BEFORE acking KIND_STOPPING, OR request_stop waits for a ping-to-fail before returning. Unit: stop then immediate is_running()==false. (v0.12.0)",
2026-06-18T12:03:29.1348908Z       "requiredStages": [
2026-06-18T12:03:29.1349258Z         "impl",
2026-06-18T12:03:29.1349534Z         "unit"
2026-06-18T12:03:29.1349879Z       ],
2026-06-18T12:03:29.1350159Z       "stages": {
2026-06-18T12:03:29.1350455Z         "doc": {
2026-06-18T12:03:29.1350765Z           "complete": false,
2026-06-18T12:03:29.1351060Z           "evidence": []
2026-06-18T12:03:29.1351342Z         },
2026-06-18T12:03:29.1351628Z         "impl": {
2026-06-18T12:03:29.1352051Z           "complete": true,
2026-06-18T12:03:29.1352366Z           "evidence": [
2026-06-18T12:03:29.1352666Z             {
2026-06-18T12:03:29.1353130Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.1353459Z               "line": 257
2026-06-18T12:03:29.1353765Z             }
2026-06-18T12:03:29.1354048Z           ]
2026-06-18T12:03:29.1354337Z         },
2026-06-18T12:03:29.1354622Z         "int": {
2026-06-18T12:03:29.1354942Z           "complete": false,
2026-06-18T12:03:29.1355238Z           "evidence": []
2026-06-18T12:03:29.1355519Z         },
2026-06-18T12:03:29.1355815Z         "unit": {
2026-06-18T12:03:29.1356120Z           "complete": true,
2026-06-18T12:03:29.1356430Z           "evidence": [
2026-06-18T12:03:29.1356707Z             {
2026-06-18T12:03:29.1357109Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.1357399Z               "line": 360
2026-06-18T12:03:29.1357686Z             }
2026-06-18T12:03:29.1357972Z           ]
2026-06-18T12:03:29.1358249Z         }
2026-06-18T12:03:29.1358531Z       }
2026-06-18T12:03:29.1358807Z     },
2026-06-18T12:03:29.1359160Z     {
2026-06-18T12:03:29.1359525Z       "id": "REQ-HAZARD-DAEMON-STOP-REAP",
2026-06-18T12:03:29.1365102Z       "title": "Breap: `spt daemon stop` REAPS the spt-hosted children it spawned — no orphaned psyche/harness processes. Today a stop leaves ~8 orphaned claude-spt-psyche.exe + spt.exe: Psyches are spawned DETACHED (runtime.rs:342-356, the Child is dropped — 'Detached' ~349) and the livehost stop flag Arc<AtomicBool> is NEVER raised (brainproc.rs:227-230 holds it 'for symmetry'). FIX: on stop, raise the livehost stop flag AND kill the spawned psyche/spt-hosted children — via a Windows job object / Unix process-group so the children die with the daemon (not detached-immortal). Folds with B3 (both the stop path). (v0.12.0)",
2026-06-18T12:03:29.1365599Z       "requiredStages": [
2026-06-18T12:03:29.1365885Z         "impl",
2026-06-18T12:03:29.1366170Z         "unit"
2026-06-18T12:03:29.1366456Z       ],
2026-06-18T12:03:29.1366742Z       "stages": {
2026-06-18T12:03:29.1367038Z         "doc": {
2026-06-18T12:03:29.1367475Z           "complete": false,
2026-06-18T12:03:29.1367783Z           "evidence": []
2026-06-18T12:03:29.1368064Z         },
2026-06-18T12:03:29.1368360Z         "impl": {
2026-06-18T12:03:29.1368670Z           "complete": true,
2026-06-18T12:03:29.1369037Z           "evidence": [
2026-06-18T12:03:29.1369328Z             {
2026-06-18T12:03:29.1369745Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1370057Z               "line": 1018
2026-06-18T12:03:29.1370345Z             },
2026-06-18T12:03:29.1370664Z             {
2026-06-18T12:03:29.1371061Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1371361Z               "line": 278
2026-06-18T12:03:29.1371653Z             },
2026-06-18T12:03:29.1371924Z             {
2026-06-18T12:03:29.1372325Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1372621Z               "line": 311
2026-06-18T12:03:29.1372900Z             },
2026-06-18T12:03:29.1373186Z             {
2026-06-18T12:03:29.1373573Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-18T12:03:29.1373868Z               "line": 26
2026-06-18T12:03:29.1374144Z             }
2026-06-18T12:03:29.1374430Z           ]
2026-06-18T12:03:29.1374707Z         },
2026-06-18T12:03:29.1374988Z         "int": {
2026-06-18T12:03:29.1375301Z           "complete": false,
2026-06-18T12:03:29.1375592Z           "evidence": []
2026-06-18T12:03:29.1375877Z         },
2026-06-18T12:03:29.1376154Z         "unit": {
2026-06-18T12:03:29.1376474Z           "complete": true,
2026-06-18T12:03:29.1376774Z           "evidence": [
2026-06-18T12:03:29.1377060Z             {
2026-06-18T12:03:29.1377451Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-18T12:03:29.1377747Z               "line": 271
2026-06-18T12:03:29.1378036Z             },
2026-06-18T12:03:29.1378309Z             {
2026-06-18T12:03:29.1378692Z               "path": "crates/spt-daemon/src/reap.rs",
2026-06-18T12:03:29.1379083Z               "line": 348
2026-06-18T12:03:29.1379374Z             }
2026-06-18T12:03:29.1379661Z           ]
2026-06-18T12:03:29.1379937Z         }
2026-06-18T12:03:29.1380217Z       }
2026-06-18T12:03:29.1380498Z     },
2026-06-18T12:03:29.1380786Z     {
2026-06-18T12:03:29.1381124Z       "id": "REQ-HAZARD-DEFERRED-DRAIN",
2026-06-18T12:03:29.1381740Z       "title": "Deferred spool rows excluded from the event-stream drain (1.4)",
2026-06-18T12:03:29.1382064Z       "requiredStages": [
2026-06-18T12:03:29.1382350Z         "impl",
2026-06-18T12:03:29.1382650Z         "unit"
2026-06-18T12:03:29.1382923Z       ],
2026-06-18T12:03:29.1383214Z       "stages": {
2026-06-18T12:03:29.1383504Z         "doc": {
2026-06-18T12:03:29.1383828Z           "complete": false,
2026-06-18T12:03:29.1384129Z           "evidence": []
2026-06-18T12:03:29.1384409Z         },
2026-06-18T12:03:29.1384704Z         "impl": {
2026-06-18T12:03:29.1385014Z           "complete": true,
2026-06-18T12:03:29.1385315Z           "evidence": [
2026-06-18T12:03:29.1385595Z             {
2026-06-18T12:03:29.1385988Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1386293Z               "line": 40
2026-06-18T12:03:29.1386570Z             },
2026-06-18T12:03:29.1386861Z             {
2026-06-18T12:03:29.1387242Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1387552Z               "line": 103
2026-06-18T12:03:29.1387825Z             },
2026-06-18T12:03:29.1388110Z             {
2026-06-18T12:03:29.1388491Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1388899Z               "line": 218
2026-06-18T12:03:29.1389252Z             },
2026-06-18T12:03:29.1389533Z             {
2026-06-18T12:03:29.1389915Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1390211Z               "line": 323
2026-06-18T12:03:29.1390497Z             }
2026-06-18T12:03:29.1390787Z           ]
2026-06-18T12:03:29.1391067Z         },
2026-06-18T12:03:29.1391351Z         "int": {
2026-06-18T12:03:29.1391766Z           "complete": false,
2026-06-18T12:03:29.1392075Z           "evidence": []
2026-06-18T12:03:29.1392352Z         },
2026-06-18T12:03:29.1392643Z         "unit": {
2026-06-18T12:03:29.1392953Z           "complete": true,
2026-06-18T12:03:29.1393244Z           "evidence": [
2026-06-18T12:03:29.1393529Z             {
2026-06-18T12:03:29.1393911Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1394206Z               "line": 361
2026-06-18T12:03:29.1394483Z             },
2026-06-18T12:03:29.1394764Z             {
2026-06-18T12:03:29.1395146Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1395441Z               "line": 433
2026-06-18T12:03:29.1395718Z             },
2026-06-18T12:03:29.1395996Z             {
2026-06-18T12:03:29.1396383Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1396693Z               "line": 496
2026-06-18T12:03:29.1396974Z             },
2026-06-18T12:03:29.1397260Z             {
2026-06-18T12:03:29.1397651Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1397951Z               "line": 517
2026-06-18T12:03:29.1398219Z             }
2026-06-18T12:03:29.1398500Z           ]
2026-06-18T12:03:29.1398786Z         }
2026-06-18T12:03:29.1399132Z       }
2026-06-18T12:03:29.1399425Z     },
2026-06-18T12:03:29.1399697Z     {
2026-06-18T12:03:29.1400054Z       "id": "REQ-HAZARD-DEFERRED-MANIFEST",
2026-06-18T12:03:29.1407200Z       "title": "A pointer-mode (delegated / GhReleaseManaged) adapter whose binary/manifest is not yet extracted is reported with a CLEAR diagnostic, never silently dropped. Today such an adapter reads its manifest LIVE from source_dir (registry.rs manifest_dir ~146/149); a deferred / un-extracted install makes load_manifest fail → registered() (~410, filter_map(.ok())) SILENTLY DROPS the row → downstream ADAPTER_UNRESOLVED + a cryptic os-error-2 on `spt adapter use`. FIX: surface a clear diagnostic at the resolver + at `adapter use` (name the adapter + the deferred/missing-manifest cause + the fix), not a silent filter-drop and not a bare os-error-2; consider an eager manifest copy at register time so host_binaries survive before the binary download completes. doyle Finding A. (post-v0.10.0)",
2026-06-18T12:03:29.1407553Z       "requiredStages": [
2026-06-18T12:03:29.1407849Z         "impl",
2026-06-18T12:03:29.1408131Z         "unit"
2026-06-18T12:03:29.1408411Z       ],
2026-06-18T12:03:29.1408701Z       "stages": {
2026-06-18T12:03:29.1409055Z         "doc": {
2026-06-18T12:03:29.1409409Z           "complete": false,
2026-06-18T12:03:29.1409706Z           "evidence": []
2026-06-18T12:03:29.1409990Z         },
2026-06-18T12:03:29.1410281Z         "impl": {
2026-06-18T12:03:29.1410581Z           "complete": true,
2026-06-18T12:03:29.1410877Z           "evidence": [
2026-06-18T12:03:29.1411154Z             {
2026-06-18T12:03:29.1411559Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.1411860Z               "line": 402
2026-06-18T12:03:29.1412154Z             },
2026-06-18T12:03:29.1412438Z             {
2026-06-18T12:03:29.1412852Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.1413148Z               "line": 446
2026-06-18T12:03:29.1413425Z             }
2026-06-18T12:03:29.1413701Z           ]
2026-06-18T12:03:29.1413974Z         },
2026-06-18T12:03:29.1414251Z         "int": {
2026-06-18T12:03:29.1414561Z           "complete": false,
2026-06-18T12:03:29.1414857Z           "evidence": []
2026-06-18T12:03:29.1415136Z         },
2026-06-18T12:03:29.1415533Z         "unit": {
2026-06-18T12:03:29.1415847Z           "complete": true,
2026-06-18T12:03:29.1416143Z           "evidence": [
2026-06-18T12:03:29.1416424Z             {
2026-06-18T12:03:29.1416834Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.1417135Z               "line": 910
2026-06-18T12:03:29.1417414Z             }
2026-06-18T12:03:29.1417688Z           ]
2026-06-18T12:03:29.1417964Z         }
2026-06-18T12:03:29.1418342Z       }
2026-06-18T12:03:29.1418627Z     },
2026-06-18T12:03:29.1418899Z     {
2026-06-18T12:03:29.1419372Z       "id": "REQ-HAZARD-DEFERRED-SURVIVE-DRAIN",
2026-06-18T12:03:29.1419791Z       "title": "Deferred rows survive poll drain (4.4)",
2026-06-18T12:03:29.1420105Z       "requiredStages": [
2026-06-18T12:03:29.1420399Z         "impl",
2026-06-18T12:03:29.1420685Z         "unit"
2026-06-18T12:03:29.1420971Z       ],
2026-06-18T12:03:29.1421253Z       "stages": {
2026-06-18T12:03:29.1421542Z         "doc": {
2026-06-18T12:03:29.1421862Z           "complete": false,
2026-06-18T12:03:29.1422153Z           "evidence": []
2026-06-18T12:03:29.1422429Z         },
2026-06-18T12:03:29.1422710Z         "impl": {
2026-06-18T12:03:29.1423022Z           "complete": true,
2026-06-18T12:03:29.1423323Z           "evidence": [
2026-06-18T12:03:29.1423604Z             {
2026-06-18T12:03:29.1423990Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1424291Z               "line": 116
2026-06-18T12:03:29.1424591Z             },
2026-06-18T12:03:29.1424877Z             {
2026-06-18T12:03:29.1425263Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1425563Z               "line": 211
2026-06-18T12:03:29.1425854Z             }
2026-06-18T12:03:29.1426144Z           ]
2026-06-18T12:03:29.1426431Z         },
2026-06-18T12:03:29.1426717Z         "int": {
2026-06-18T12:03:29.1427027Z           "complete": false,
2026-06-18T12:03:29.1427337Z           "evidence": []
2026-06-18T12:03:29.1427613Z         },
2026-06-18T12:03:29.1427907Z         "unit": {
2026-06-18T12:03:29.1428219Z           "complete": true,
2026-06-18T12:03:29.1428510Z           "evidence": [
2026-06-18T12:03:29.1428796Z             {
2026-06-18T12:03:29.1429251Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1429555Z               "line": 388
2026-06-18T12:03:29.1429851Z             },
2026-06-18T12:03:29.1430137Z             {
2026-06-18T12:03:29.1430529Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.1430832Z               "line": 469
2026-06-18T12:03:29.1431120Z             }
2026-06-18T12:03:29.1431392Z           ]
2026-06-18T12:03:29.1431673Z         }
2026-06-18T12:03:29.1431955Z       }
2026-06-18T12:03:29.1432241Z     },
2026-06-18T12:03:29.1432523Z     {
2026-06-18T12:03:29.1432908Z       "id": "REQ-HAZARD-DETACHED-PIPE-INHERIT",
2026-06-18T12:03:29.1436299Z       "title": "Windows detached long-lived children must not inherit a captured caller's pipe: every detach-spawn of an immortal child (daemon, shell binary) runs bInheritHandles=FALSE, or a caller capturing output anywhere up the process chain hangs forever on a pipe that never EOFs — std-handle flag stripping is NOT sufficient (grandparent strays still flow) (5.6)",
2026-06-18T12:03:29.1436633Z       "requiredStages": [
2026-06-18T12:03:29.1436925Z         "impl",
2026-06-18T12:03:29.1437219Z         "unit"
2026-06-18T12:03:29.1437500Z       ],
2026-06-18T12:03:29.1437796Z       "stages": {
2026-06-18T12:03:29.1438097Z         "doc": {
2026-06-18T12:03:29.1438406Z           "complete": true,
2026-06-18T12:03:29.1438694Z           "evidence": [
2026-06-18T12:03:29.1439051Z             {
2026-06-18T12:03:29.1439423Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1439724Z               "line": 206
2026-06-18T12:03:29.1440014Z             }
2026-06-18T12:03:29.1440287Z           ]
2026-06-18T12:03:29.1440572Z         },
2026-06-18T12:03:29.1440859Z         "impl": {
2026-06-18T12:03:29.1441174Z           "complete": true,
2026-06-18T12:03:29.1441623Z           "evidence": [
2026-06-18T12:03:29.1441900Z             {
2026-06-18T12:03:29.1442305Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1442605Z               "line": 657
2026-06-18T12:03:29.1442896Z             },
2026-06-18T12:03:29.1443178Z             {
2026-06-18T12:03:29.1443578Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1443882Z               "line": 749
2026-06-18T12:03:29.1444276Z             },
2026-06-18T12:03:29.1444562Z             {
2026-06-18T12:03:29.1444968Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.1445264Z               "line": 184
2026-06-18T12:03:29.1445540Z             }
2026-06-18T12:03:29.1445825Z           ]
2026-06-18T12:03:29.1446107Z         },
2026-06-18T12:03:29.1446393Z         "int": {
2026-06-18T12:03:29.1446712Z           "complete": false,
2026-06-18T12:03:29.1447017Z           "evidence": []
2026-06-18T12:03:29.1447299Z         },
2026-06-18T12:03:29.1447594Z         "unit": {
2026-06-18T12:03:29.1447914Z           "complete": true,
2026-06-18T12:03:29.1448214Z           "evidence": [
2026-06-18T12:03:29.1448496Z             {
2026-06-18T12:03:29.1448890Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1449273Z               "line": 798
2026-06-18T12:03:29.1449569Z             },
2026-06-18T12:03:29.1449851Z             {
2026-06-18T12:03:29.1450284Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-18T12:03:29.1450593Z               "line": 44
2026-06-18T12:03:29.1450880Z             },
2026-06-18T12:03:29.1451171Z             {
2026-06-18T12:03:29.1451591Z               "path": "crates/spt/tests/shell_actgate_e2e.rs",
2026-06-18T12:03:29.1451899Z               "line": 52
2026-06-18T12:03:29.1452183Z             },
2026-06-18T12:03:29.1452464Z             {
2026-06-18T12:03:29.1452851Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-18T12:03:29.1453151Z               "line": 57
2026-06-18T12:03:29.1453447Z             },
2026-06-18T12:03:29.1453728Z             {
2026-06-18T12:03:29.1454168Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-18T12:03:29.1454475Z               "line": 54
2026-06-18T12:03:29.1454750Z             }
2026-06-18T12:03:29.1455041Z           ]
2026-06-18T12:03:29.1455318Z         }
2026-06-18T12:03:29.1455604Z       }
2026-06-18T12:03:29.1455880Z     },
2026-06-18T12:03:29.1456168Z     {
2026-06-18T12:03:29.1456552Z       "id": "REQ-HAZARD-DIRECT-WRITE-PRECEDENCE",
2026-06-18T12:03:29.1457277Z       "title": "Direct-write precedence marker (with node id) guards stale overwrite (6.5)",
2026-06-18T12:03:29.1457596Z       "requiredStages": [
2026-06-18T12:03:29.1457882Z         "impl",
2026-06-18T12:03:29.1458168Z         "unit"
2026-06-18T12:03:29.1458445Z       ],
2026-06-18T12:03:29.1458745Z       "stages": {
2026-06-18T12:03:29.1459117Z         "doc": {
2026-06-18T12:03:29.1459418Z           "complete": false,
2026-06-18T12:03:29.1459735Z           "evidence": []
2026-06-18T12:03:29.1460010Z         },
2026-06-18T12:03:29.1460297Z         "impl": {
2026-06-18T12:03:29.1460597Z           "complete": true,
2026-06-18T12:03:29.1460892Z           "evidence": [
2026-06-18T12:03:29.1461183Z             {
2026-06-18T12:03:29.1461571Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1461871Z               "line": 26
2026-06-18T12:03:29.1462152Z             },
2026-06-18T12:03:29.1462436Z             {
2026-06-18T12:03:29.1462825Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1463134Z               "line": 135
2026-06-18T12:03:29.1463430Z             },
2026-06-18T12:03:29.1463706Z             {
2026-06-18T12:03:29.1464127Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T12:03:29.1464423Z               "line": 26
2026-06-18T12:03:29.1464713Z             },
2026-06-18T12:03:29.1464989Z             {
2026-06-18T12:03:29.1465406Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T12:03:29.1465821Z               "line": 237
2026-06-18T12:03:29.1466103Z             }
2026-06-18T12:03:29.1466389Z           ]
2026-06-18T12:03:29.1466670Z         },
2026-06-18T12:03:29.1466955Z         "int": {
2026-06-18T12:03:29.1467265Z           "complete": false,
2026-06-18T12:03:29.1467585Z           "evidence": []
2026-06-18T12:03:29.1467861Z         },
2026-06-18T12:03:29.1468146Z         "unit": {
2026-06-18T12:03:29.1468561Z           "complete": true,
2026-06-18T12:03:29.1468852Z           "evidence": [
2026-06-18T12:03:29.1469220Z             {
2026-06-18T12:03:29.1469607Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1469912Z               "line": 161
2026-06-18T12:03:29.1470200Z             },
2026-06-18T12:03:29.1470474Z             {
2026-06-18T12:03:29.1470866Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1471172Z               "line": 170
2026-06-18T12:03:29.1471453Z             },
2026-06-18T12:03:29.1471743Z             {
2026-06-18T12:03:29.1472131Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1472431Z               "line": 179
2026-06-18T12:03:29.1472707Z             },
2026-06-18T12:03:29.1472982Z             {
2026-06-18T12:03:29.1473370Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1473676Z               "line": 190
2026-06-18T12:03:29.1473961Z             },
2026-06-18T12:03:29.1474252Z             {
2026-06-18T12:03:29.1474634Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1474939Z               "line": 199
2026-06-18T12:03:29.1475221Z             },
2026-06-18T12:03:29.1475505Z             {
2026-06-18T12:03:29.1475884Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1476185Z               "line": 216
2026-06-18T12:03:29.1476471Z             },
2026-06-18T12:03:29.1476758Z             {
2026-06-18T12:03:29.1477138Z               "path": "crates/spt-live/src/context.rs",
2026-06-18T12:03:29.1477453Z               "line": 242
2026-06-18T12:03:29.1477735Z             },
2026-06-18T12:03:29.1478011Z             {
2026-06-18T12:03:29.1478387Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.1478678Z               "line": 295
2026-06-18T12:03:29.1479035Z             },
2026-06-18T12:03:29.1479308Z             {
2026-06-18T12:03:29.1483373Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.1483722Z               "line": 244
2026-06-18T12:03:29.1484017Z             },
2026-06-18T12:03:29.1484299Z             {
2026-06-18T12:03:29.1484727Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T12:03:29.1485032Z               "line": 265
2026-06-18T12:03:29.1485314Z             },
2026-06-18T12:03:29.1485596Z             {
2026-06-18T12:03:29.1486019Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T12:03:29.1486327Z               "line": 293
2026-06-18T12:03:29.1486617Z             },
2026-06-18T12:03:29.1486908Z             {
2026-06-18T12:03:29.1487323Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T12:03:29.1487618Z               "line": 317
2026-06-18T12:03:29.1487905Z             },
2026-06-18T12:03:29.1488191Z             {
2026-06-18T12:03:29.1488614Z               "path": "crates/spt-store/src/contextmark.rs",
2026-06-18T12:03:29.1488924Z               "line": 327
2026-06-18T12:03:29.1489304Z             },
2026-06-18T12:03:29.1489600Z             {
2026-06-18T12:03:29.1490015Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.1490320Z               "line": 540
2026-06-18T12:03:29.1490606Z             }
2026-06-18T12:03:29.1490888Z           ]
2026-06-18T12:03:29.1491178Z         }
2026-06-18T12:03:29.1491457Z       }
2026-06-18T12:03:29.1491734Z     },
2026-06-18T12:03:29.1492015Z     {
2026-06-18T12:03:29.1492411Z       "id": "REQ-HAZARD-DROP-FILE-SINGLE-WRITER",
2026-06-18T12:03:29.1492907Z       "title": "Drop files are daemon-owned single-writer (6.4)",
2026-06-18T12:03:29.1493378Z       "requiredStages": [
2026-06-18T12:03:29.1493674Z         "impl",
2026-06-18T12:03:29.1493956Z         "unit"
2026-06-18T12:03:29.1494241Z       ],
2026-06-18T12:03:29.1494529Z       "stages": {
2026-06-18T12:03:29.1494825Z         "doc": {
2026-06-18T12:03:29.1495140Z           "complete": false,
2026-06-18T12:03:29.1495435Z           "evidence": []
2026-06-18T12:03:29.1495726Z         },
2026-06-18T12:03:29.1496098Z         "impl": {
2026-06-18T12:03:29.1496413Z           "complete": true,
2026-06-18T12:03:29.1496721Z           "evidence": [
2026-06-18T12:03:29.1497009Z             {
2026-06-18T12:03:29.1497391Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.1497696Z               "line": 25
2026-06-18T12:03:29.1497972Z             },
2026-06-18T12:03:29.1498249Z             {
2026-06-18T12:03:29.1498641Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.1498936Z               "line": 26
2026-06-18T12:03:29.1499319Z             },
2026-06-18T12:03:29.1499602Z             {
2026-06-18T12:03:29.1499980Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.1500286Z               "line": 159
2026-06-18T12:03:29.1500575Z             }
2026-06-18T12:03:29.1500861Z           ]
2026-06-18T12:03:29.1501133Z         },
2026-06-18T12:03:29.1501424Z         "int": {
2026-06-18T12:03:29.1501729Z           "complete": false,
2026-06-18T12:03:29.1502046Z           "evidence": []
2026-06-18T12:03:29.1502337Z         },
2026-06-18T12:03:29.1502623Z         "unit": {
2026-06-18T12:03:29.1502933Z           "complete": true,
2026-06-18T12:03:29.1503229Z           "evidence": [
2026-06-18T12:03:29.1503515Z             {
2026-06-18T12:03:29.1503882Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.1504193Z               "line": 188
2026-06-18T12:03:29.1504484Z             },
2026-06-18T12:03:29.1504767Z             {
2026-06-18T12:03:29.1505152Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.1505452Z               "line": 240
2026-06-18T12:03:29.1505743Z             },
2026-06-18T12:03:29.1506029Z             {
2026-06-18T12:03:29.1506416Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.1506716Z               "line": 186
2026-06-18T12:03:29.1506993Z             }
2026-06-18T12:03:29.1507271Z           ]
2026-06-18T12:03:29.1507560Z         }
2026-06-18T12:03:29.1507842Z       }
2026-06-18T12:03:29.1508128Z     },
2026-06-18T12:03:29.1508414Z     {
2026-06-18T12:03:29.1508767Z       "id": "REQ-HAZARD-EBUSY-RENAME",
2026-06-18T12:03:29.1509382Z       "title": "tmp-write + atomic-rename + retry on Windows EBUSY (5.2)",
2026-06-18T12:03:29.1509706Z       "requiredStages": [
2026-06-18T12:03:29.1509992Z         "impl",
2026-06-18T12:03:29.1510274Z         "unit"
2026-06-18T12:03:29.1510559Z       ],
2026-06-18T12:03:29.1510860Z       "stages": {
2026-06-18T12:03:29.1511155Z         "doc": {
2026-06-18T12:03:29.1511470Z           "complete": false,
2026-06-18T12:03:29.1511790Z           "evidence": []
2026-06-18T12:03:29.1512071Z         },
2026-06-18T12:03:29.1512365Z         "impl": {
2026-06-18T12:03:29.1512663Z           "complete": true,
2026-06-18T12:03:29.1512967Z           "evidence": [
2026-06-18T12:03:29.1513255Z             {
2026-06-18T12:03:29.1513640Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1513936Z               "line": 48
2026-06-18T12:03:29.1514232Z             },
2026-06-18T12:03:29.1514532Z             {
2026-06-18T12:03:29.1514918Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1515227Z               "line": 55
2026-06-18T12:03:29.1515506Z             },
2026-06-18T12:03:29.1515779Z             {
2026-06-18T12:03:29.1516168Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1516474Z               "line": 74
2026-06-18T12:03:29.1516761Z             },
2026-06-18T12:03:29.1517041Z             {
2026-06-18T12:03:29.1517423Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1517831Z               "line": 91
2026-06-18T12:03:29.1518116Z             }
2026-06-18T12:03:29.1518397Z           ]
2026-06-18T12:03:29.1518674Z         },
2026-06-18T12:03:29.1519050Z         "int": {
2026-06-18T12:03:29.1519365Z           "complete": false,
2026-06-18T12:03:29.1519684Z           "evidence": []
2026-06-18T12:03:29.1519975Z         },
2026-06-18T12:03:29.1520251Z         "unit": {
2026-06-18T12:03:29.1520666Z           "complete": true,
2026-06-18T12:03:29.1520952Z           "evidence": [
2026-06-18T12:03:29.1521243Z             {
2026-06-18T12:03:29.1521624Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1521934Z               "line": 149
2026-06-18T12:03:29.1522225Z             },
2026-06-18T12:03:29.1522501Z             {
2026-06-18T12:03:29.1522891Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1523190Z               "line": 166
2026-06-18T12:03:29.1523476Z             },
2026-06-18T12:03:29.1523748Z             {
2026-06-18T12:03:29.1524138Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1524449Z               "line": 176
2026-06-18T12:03:29.1524725Z             },
2026-06-18T12:03:29.1524998Z             {
2026-06-18T12:03:29.1525388Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1525693Z               "line": 194
2026-06-18T12:03:29.1525977Z             },
2026-06-18T12:03:29.1526268Z             {
2026-06-18T12:03:29.1526663Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.1526958Z               "line": 207
2026-06-18T12:03:29.1527250Z             }
2026-06-18T12:03:29.1527522Z           ]
2026-06-18T12:03:29.1527803Z         }
2026-06-18T12:03:29.1528089Z       }
2026-06-18T12:03:29.1528378Z     },
2026-06-18T12:03:29.1528661Z     {
2026-06-18T12:03:29.1529121Z       "id": "REQ-HAZARD-ECHO-BEFORE-SIGNOFF",
2026-06-18T12:03:29.1529755Z       "title": "Echo-commune fires before INIT_SIGNOFF on orphan teardown (3.3)",
2026-06-18T12:03:29.1530074Z       "requiredStages": [
2026-06-18T12:03:29.1530360Z         "impl",
2026-06-18T12:03:29.1530641Z         "unit"
2026-06-18T12:03:29.1530922Z       ],
2026-06-18T12:03:29.1531217Z       "stages": {
2026-06-18T12:03:29.1531503Z         "doc": {
2026-06-18T12:03:29.1531822Z           "complete": false,
2026-06-18T12:03:29.1532123Z           "evidence": []
2026-06-18T12:03:29.1532413Z         },
2026-06-18T12:03:29.1532704Z         "impl": {
2026-06-18T12:03:29.1533015Z           "complete": true,
2026-06-18T12:03:29.1533310Z           "evidence": [
2026-06-18T12:03:29.1533600Z             {
2026-06-18T12:03:29.1534018Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1534318Z               "line": 466
2026-06-18T12:03:29.1534599Z             },
2026-06-18T12:03:29.1534871Z             {
2026-06-18T12:03:29.1535266Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.1535576Z               "line": 26
2026-06-18T12:03:29.1535863Z             }
2026-06-18T12:03:29.1536150Z           ]
2026-06-18T12:03:29.1536433Z         },
2026-06-18T12:03:29.1536726Z         "int": {
2026-06-18T12:03:29.1537037Z           "complete": false,
2026-06-18T12:03:29.1537336Z           "evidence": []
2026-06-18T12:03:29.1537627Z         },
2026-06-18T12:03:29.1537914Z         "unit": {
2026-06-18T12:03:29.1538224Z           "complete": true,
2026-06-18T12:03:29.1538533Z           "evidence": [
2026-06-18T12:03:29.1538825Z             {
2026-06-18T12:03:29.1539313Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.1539651Z               "line": 150
2026-06-18T12:03:29.1539932Z             },
2026-06-18T12:03:29.1540213Z             {
2026-06-18T12:03:29.1540601Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.1540896Z               "line": 208
2026-06-18T12:03:29.1541187Z             }
2026-06-18T12:03:29.1541468Z           ]
2026-06-18T12:03:29.1541758Z         }
2026-06-18T12:03:29.1542162Z       }
2026-06-18T12:03:29.1542439Z     },
2026-06-18T12:03:29.1542730Z     {
2026-06-18T12:03:29.1543116Z       "id": "REQ-HAZARD-ELEVATED-DAEMON-SPAWN",
2026-06-18T12:03:29.1547187Z       "title": "The daemon always runs unelevated in the invoking user's universe, regardless of which command spawns it: an elevated spawner de-elevates (Windows: UAC linked token via CreateProcessWithTokenW; Linux: drop to SUDO_UID/SUDO_GID + the invoker's HOME) — an elevated daemon's pipes deny unelevated clients (every later spt reads not-running→spawn→bind Access-denied) and a sudo'd daemon roots the user's state universe (5.7)",
2026-06-18T12:03:29.1547650Z       "requiredStages": [
2026-06-18T12:03:29.1547935Z         "doc",
2026-06-18T12:03:29.1548231Z         "impl",
2026-06-18T12:03:29.1548507Z         "unit"
2026-06-18T12:03:29.1548789Z       ],
2026-06-18T12:03:29.1549165Z       "stages": {
2026-06-18T12:03:29.1549450Z         "doc": {
2026-06-18T12:03:29.1549767Z           "complete": true,
2026-06-18T12:03:29.1550091Z           "evidence": [
2026-06-18T12:03:29.1550374Z             {
2026-06-18T12:03:29.1550726Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1551027Z               "line": 214
2026-06-18T12:03:29.1551313Z             }
2026-06-18T12:03:29.1551599Z           ]
2026-06-18T12:03:29.1551876Z         },
2026-06-18T12:03:29.1552148Z         "impl": {
2026-06-18T12:03:29.1552461Z           "complete": true,
2026-06-18T12:03:29.1552785Z           "evidence": [
2026-06-18T12:03:29.1553072Z             {
2026-06-18T12:03:29.1553477Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1553773Z               "line": 56
2026-06-18T12:03:29.1554064Z             },
2026-06-18T12:03:29.1554335Z             {
2026-06-18T12:03:29.1554730Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.1555033Z               "line": 575
2026-06-18T12:03:29.1555314Z             },
2026-06-18T12:03:29.1555604Z             {
2026-06-18T12:03:29.1556020Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1556316Z               "line": 36
2026-06-18T12:03:29.1556602Z             },
2026-06-18T12:03:29.1556893Z             {
2026-06-18T12:03:29.1557308Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1557611Z               "line": 59
2026-06-18T12:03:29.1557890Z             },
2026-06-18T12:03:29.1558181Z             {
2026-06-18T12:03:29.1558596Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1558892Z               "line": 83
2026-06-18T12:03:29.1559263Z             },
2026-06-18T12:03:29.1559555Z             {
2026-06-18T12:03:29.1559978Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1560285Z               "line": 140
2026-06-18T12:03:29.1560567Z             },
2026-06-18T12:03:29.1560853Z             {
2026-06-18T12:03:29.1561267Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1561587Z               "line": 159
2026-06-18T12:03:29.1561868Z             },
2026-06-18T12:03:29.1562164Z             {
2026-06-18T12:03:29.1562583Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1562892Z               "line": 384
2026-06-18T12:03:29.1563183Z             },
2026-06-18T12:03:29.1563461Z             {
2026-06-18T12:03:29.1563879Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1564184Z               "line": 526
2026-06-18T12:03:29.1564471Z             },
2026-06-18T12:03:29.1564765Z             {
2026-06-18T12:03:29.1565175Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1565492Z               "line": 572
2026-06-18T12:03:29.1565778Z             },
2026-06-18T12:03:29.1566069Z             {
2026-06-18T12:03:29.1566446Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.1566755Z               "line": 300
2026-06-18T12:03:29.1567032Z             },
2026-06-18T12:03:29.1567433Z             {
2026-06-18T12:03:29.1567792Z               "path": "crates/spt/src/main.rs",
2026-06-18T12:03:29.1568095Z               "line": 41
2026-06-18T12:03:29.1568378Z             }
2026-06-18T12:03:29.1568660Z           ]
2026-06-18T12:03:29.1569046Z         },
2026-06-18T12:03:29.1569341Z         "int": {
2026-06-18T12:03:29.1569656Z           "complete": false,
2026-06-18T12:03:29.1569957Z           "evidence": []
2026-06-18T12:03:29.1570243Z         },
2026-06-18T12:03:29.1570647Z         "unit": {
2026-06-18T12:03:29.1570949Z           "complete": true,
2026-06-18T12:03:29.1571250Z           "evidence": [
2026-06-18T12:03:29.1571536Z             {
2026-06-18T12:03:29.1571947Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1572252Z               "line": 785
2026-06-18T12:03:29.1572523Z             },
2026-06-18T12:03:29.1572805Z             {
2026-06-18T12:03:29.1573216Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1573514Z               "line": 826
2026-06-18T12:03:29.1573805Z             },
2026-06-18T12:03:29.1574087Z             {
2026-06-18T12:03:29.1574496Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.1574797Z               "line": 900
2026-06-18T12:03:29.1575087Z             }
2026-06-18T12:03:29.1575374Z           ]
2026-06-18T12:03:29.1575654Z         }
2026-06-18T12:03:29.1575930Z       }
2026-06-18T12:03:29.1576201Z     },
2026-06-18T12:03:29.1576487Z     {
2026-06-18T12:03:29.1576821Z       "id": "REQ-HAZARD-ENV-SUBST",
2026-06-18T12:03:29.1587410Z       "title": "`spt endpoint run` HONORS manifest [env.<VAR>] direction=inject values (with {key} substitution) on the spt-hosted spawn. Today only the [session.self] command ARGV is {id}-substituted; the [env] inject value is NEITHER substituted NOR applied — manifest.schema.json promises EnvVar.value = 'Value to inject (with substitution)' but prepare_harness_spawn fills only argv and SpawnReq carries no env, so a [env.SPT_ENDPOINT_ID].value='{id}' arrives EMPTY. A FLAGLESS harness (bare `claude`, no argv slot for {id}) then routes the id via [env] → empty → SessionStart sees empty $SPT_ENDPOINT_ID → seeds-by-PPID instead of binding → ZERO perch → NO_PERCH (the actual wall-b bind blocker; perri hard-repro'd). SILENT failure (empty inject, no error). FIX (doyle ruled a): fill every [env] inject value from the SAME {key} catalog as argv/role (mirror F-009 TEMPLATE fill, whole-string fill_template for an env value), thread it through SpawnReq.env → the broker sets it on the spawned PTY child. Correctness fix — schema already promises it, NO manifest change, NO new binary. PAIRS with REQ-SEND-SPT-HOSTED to make endpoint run fully work. doyle F-013. (post-v0.10.0)",
2026-06-18T12:03:29.1587796Z       "requiredStages": [
2026-06-18T12:03:29.1588091Z         "impl",
2026-06-18T12:03:29.1588377Z         "unit",
2026-06-18T12:03:29.1588654Z         "int"
2026-06-18T12:03:29.1588932Z       ],
2026-06-18T12:03:29.1589286Z       "stages": {
2026-06-18T12:03:29.1589599Z         "doc": {
2026-06-18T12:03:29.1589910Z           "complete": false,
2026-06-18T12:03:29.1590220Z           "evidence": []
2026-06-18T12:03:29.1590500Z         },
2026-06-18T12:03:29.1590787Z         "impl": {
2026-06-18T12:03:29.1591101Z           "complete": true,
2026-06-18T12:03:29.1591392Z           "evidence": [
2026-06-18T12:03:29.1591672Z             {
2026-06-18T12:03:29.1592114Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.1592447Z               "line": 102
2026-06-18T12:03:29.1592723Z             },
2026-06-18T12:03:29.1593014Z             {
2026-06-18T12:03:29.1593397Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T12:03:29.1593707Z               "line": 134
2026-06-18T12:03:29.1593987Z             }
2026-06-18T12:03:29.1594264Z           ]
2026-06-18T12:03:29.1594554Z         },
2026-06-18T12:03:29.1594844Z         "int": {
2026-06-18T12:03:29.1595164Z           "complete": true,
2026-06-18T12:03:29.1595465Z           "evidence": [
2026-06-18T12:03:29.1595860Z             {
2026-06-18T12:03:29.1596261Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T12:03:29.1596581Z               "line": 310
2026-06-18T12:03:29.1596874Z             },
2026-06-18T12:03:29.1597144Z             {
2026-06-18T12:03:29.1597559Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T12:03:29.1597855Z               "line": 504
2026-06-18T12:03:29.1598140Z             }
2026-06-18T12:03:29.1598543Z           ]
2026-06-18T12:03:29.1598823Z         },
2026-06-18T12:03:29.1599177Z         "unit": {
2026-06-18T12:03:29.1599497Z           "complete": true,
2026-06-18T12:03:29.1599799Z           "evidence": [
2026-06-18T12:03:29.1600083Z             {
2026-06-18T12:03:29.1600518Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.1600818Z               "line": 205
2026-06-18T12:03:29.1601104Z             }
2026-06-18T12:03:29.1601395Z           ]
2026-06-18T12:03:29.1601666Z         }
2026-06-18T12:03:29.1601957Z       }
2026-06-18T12:03:29.1602237Z     },
2026-06-18T12:03:29.1602512Z     {
2026-06-18T12:03:29.1602887Z       "id": "REQ-HAZARD-ENVELOPE-CR-LINESAFE",
2026-06-18T12:03:29.1608276Z       "title": "Envelope CR-linesafety (4.1): the line-framed EVENT codec must neutralize raw carriage returns — `event_body_escape` folds CRLF/lone-CR to the codec's representable linebreak (`\\n`→`<br>`) BEFORE framing, so a body carrying `\\r` (Windows `echo`/CRLF text crossing nodes) cannot survive into the single-line envelope and trigger a receiver terminal CR→col0 overwrite that corrupts the frame. Robustness on unrepresentable input, NOT a wire-format change (decoder untouched, amp-last invariant held). Belt-and-suspenders: `spt send`/`ring` also trim stdin (parity with `notify`).",
2026-06-18T12:03:29.1608648Z       "requiredStages": [
2026-06-18T12:03:29.1609030Z         "impl",
2026-06-18T12:03:29.1609335Z         "unit"
2026-06-18T12:03:29.1609645Z       ],
2026-06-18T12:03:29.1609951Z       "stages": {
2026-06-18T12:03:29.1610292Z         "doc": {
2026-06-18T12:03:29.1610604Z           "complete": false,
2026-06-18T12:03:29.1610914Z           "evidence": []
2026-06-18T12:03:29.1611196Z         },
2026-06-18T12:03:29.1611497Z         "impl": {
2026-06-18T12:03:29.1611812Z           "complete": true,
2026-06-18T12:03:29.1612111Z           "evidence": [
2026-06-18T12:03:29.1612398Z             {
2026-06-18T12:03:29.1612807Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1613142Z               "line": 31
2026-06-18T12:03:29.1613425Z             }
2026-06-18T12:03:29.1613711Z           ]
2026-06-18T12:03:29.1613992Z         },
2026-06-18T12:03:29.1614274Z         "int": {
2026-06-18T12:03:29.1614593Z           "complete": false,
2026-06-18T12:03:29.1614904Z           "evidence": []
2026-06-18T12:03:29.1615180Z         },
2026-06-18T12:03:29.1615462Z         "unit": {
2026-06-18T12:03:29.1615779Z           "complete": true,
2026-06-18T12:03:29.1616083Z           "evidence": [
2026-06-18T12:03:29.1616370Z             {
2026-06-18T12:03:29.1616781Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1617077Z               "line": 181
2026-06-18T12:03:29.1617362Z             }
2026-06-18T12:03:29.1617740Z           ]
2026-06-18T12:03:29.1618137Z         }
2026-06-18T12:03:29.1618546Z       }
2026-06-18T12:03:29.1618860Z     },
2026-06-18T12:03:29.1619213Z     {
2026-06-18T12:03:29.1619624Z       "id": "REQ-HAZARD-ENVELOPE-DECODE-ORDER",
2026-06-18T12:03:29.1620162Z       "title": "Envelope decode order, ampersand decoded last (4.1)",
2026-06-18T12:03:29.1620482Z       "requiredStages": [
2026-06-18T12:03:29.1620772Z         "impl",
2026-06-18T12:03:29.1621060Z         "unit"
2026-06-18T12:03:29.1621342Z       ],
2026-06-18T12:03:29.1621638Z       "stages": {
2026-06-18T12:03:29.1621919Z         "doc": {
2026-06-18T12:03:29.1622234Z           "complete": false,
2026-06-18T12:03:29.1622540Z           "evidence": []
2026-06-18T12:03:29.1622825Z         },
2026-06-18T12:03:29.1623264Z         "impl": {
2026-06-18T12:03:29.1623571Z           "complete": true,
2026-06-18T12:03:29.1623881Z           "evidence": [
2026-06-18T12:03:29.1624162Z             {
2026-06-18T12:03:29.1624571Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1624867Z               "line": 49
2026-06-18T12:03:29.1625163Z             },
2026-06-18T12:03:29.1625444Z             {
2026-06-18T12:03:29.1625844Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1626258Z               "line": 81
2026-06-18T12:03:29.1626544Z             }
2026-06-18T12:03:29.1626831Z           ]
2026-06-18T12:03:29.1627107Z         },
2026-06-18T12:03:29.1627398Z         "int": {
2026-06-18T12:03:29.1627718Z           "complete": false,
2026-06-18T12:03:29.1628019Z           "evidence": []
2026-06-18T12:03:29.1628300Z         },
2026-06-18T12:03:29.1628589Z         "unit": {
2026-06-18T12:03:29.1628896Z           "complete": true,
2026-06-18T12:03:29.1629268Z           "evidence": [
2026-06-18T12:03:29.1629574Z             {
2026-06-18T12:03:29.1629988Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1630294Z               "line": 156
2026-06-18T12:03:29.1630581Z             },
2026-06-18T12:03:29.1630867Z             {
2026-06-18T12:03:29.1631276Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1631579Z               "line": 173
2026-06-18T12:03:29.1631864Z             },
2026-06-18T12:03:29.1632156Z             {
2026-06-18T12:03:29.1632560Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1632869Z               "line": 196
2026-06-18T12:03:29.1633151Z             }
2026-06-18T12:03:29.1633434Z           ]
2026-06-18T12:03:29.1633715Z         }
2026-06-18T12:03:29.1634003Z       }
2026-06-18T12:03:29.1634277Z     },
2026-06-18T12:03:29.1634550Z     {
2026-06-18T12:03:29.1634945Z       "id": "REQ-HAZARD-ENVELOPE-PARSER-SAFE",
2026-06-18T12:03:29.1635531Z       "title": "Two-slice envelope parser is panic-free and tolerant (4.2)",
2026-06-18T12:03:29.1635856Z       "requiredStages": [
2026-06-18T12:03:29.1636142Z         "impl",
2026-06-18T12:03:29.1636433Z         "unit"
2026-06-18T12:03:29.1636719Z       ],
2026-06-18T12:03:29.1637005Z       "stages": {
2026-06-18T12:03:29.1637291Z         "doc": {
2026-06-18T12:03:29.1637601Z           "complete": false,
2026-06-18T12:03:29.1637911Z           "evidence": []
2026-06-18T12:03:29.1638187Z         },
2026-06-18T12:03:29.1638483Z         "impl": {
2026-06-18T12:03:29.1638793Z           "complete": true,
2026-06-18T12:03:29.1639177Z           "evidence": [
2026-06-18T12:03:29.1639471Z             {
2026-06-18T12:03:29.1639881Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1640182Z               "line": 120
2026-06-18T12:03:29.1640468Z             }
2026-06-18T12:03:29.1640754Z           ]
2026-06-18T12:03:29.1641035Z         },
2026-06-18T12:03:29.1641320Z         "int": {
2026-06-18T12:03:29.1641640Z           "complete": false,
2026-06-18T12:03:29.1641940Z           "evidence": []
2026-06-18T12:03:29.1642228Z         },
2026-06-18T12:03:29.1642515Z         "unit": {
2026-06-18T12:03:29.1642825Z           "complete": true,
2026-06-18T12:03:29.1643130Z           "evidence": [
2026-06-18T12:03:29.1643402Z             {
2026-06-18T12:03:29.1643806Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1644092Z               "line": 212
2026-06-18T12:03:29.1644388Z             },
2026-06-18T12:03:29.1644673Z             {
2026-06-18T12:03:29.1645076Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1645387Z               "line": 221
2026-06-18T12:03:29.1645673Z             },
2026-06-18T12:03:29.1645958Z             {
2026-06-18T12:03:29.1646364Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1646668Z               "line": 229
2026-06-18T12:03:29.1646955Z             },
2026-06-18T12:03:29.1647237Z             {
2026-06-18T12:03:29.1647808Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1648113Z               "line": 239
2026-06-18T12:03:29.1648394Z             },
2026-06-18T12:03:29.1648670Z             {
2026-06-18T12:03:29.1649148Z               "path": "crates/spt-proto/src/envelope.rs",
2026-06-18T12:03:29.1649463Z               "line": 249
2026-06-18T12:03:29.1649738Z             }
2026-06-18T12:03:29.1650016Z           ]
2026-06-18T12:03:29.1650297Z         }
2026-06-18T12:03:29.1650685Z       }
2026-06-18T12:03:29.1650961Z     },
2026-06-18T12:03:29.1651241Z     {
2026-06-18T12:03:29.1651595Z       "id": "REQ-HAZARD-EPHEMERAL-CLEANUP",
2026-06-18T12:03:29.1652128Z       "title": "Ephemeral perch cleanup on every ring exit path (3.1)",
2026-06-18T12:03:29.1652457Z       "requiredStages": [
2026-06-18T12:03:29.1652737Z         "impl",
2026-06-18T12:03:29.1653027Z         "unit"
2026-06-18T12:03:29.1653314Z       ],
2026-06-18T12:03:29.1653609Z       "stages": {
2026-06-18T12:03:29.1653890Z         "doc": {
2026-06-18T12:03:29.1654210Z           "complete": false,
2026-06-18T12:03:29.1654511Z           "evidence": []
2026-06-18T12:03:29.1654791Z         },
2026-06-18T12:03:29.1655085Z         "impl": {
2026-06-18T12:03:29.1655393Z           "complete": true,
2026-06-18T12:03:29.1655688Z           "evidence": [
2026-06-18T12:03:29.1655975Z             {
2026-06-18T12:03:29.1656342Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.1656647Z               "line": 14
2026-06-18T12:03:29.1656934Z             },
2026-06-18T12:03:29.1657224Z             {
2026-06-18T12:03:29.1657587Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.1657896Z               "line": 63
2026-06-18T12:03:29.1658177Z             }
2026-06-18T12:03:29.1658449Z           ]
2026-06-18T12:03:29.1658735Z         },
2026-06-18T12:03:29.1659088Z         "int": {
2026-06-18T12:03:29.1659408Z           "complete": false,
2026-06-18T12:03:29.1659713Z           "evidence": []
2026-06-18T12:03:29.1660009Z         },
2026-06-18T12:03:29.1660293Z         "unit": {
2026-06-18T12:03:29.1660596Z           "complete": true,
2026-06-18T12:03:29.1660901Z           "evidence": [
2026-06-18T12:03:29.1661177Z             {
2026-06-18T12:03:29.1661560Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.1661859Z               "line": 164
2026-06-18T12:03:29.1662145Z             },
2026-06-18T12:03:29.1662441Z             {
2026-06-18T12:03:29.1662800Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.1663112Z               "line": 198
2026-06-18T12:03:29.1663396Z             },
2026-06-18T12:03:29.1663682Z             {
2026-06-18T12:03:29.1664044Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.1664344Z               "line": 220
2026-06-18T12:03:29.1664631Z             }
2026-06-18T12:03:29.1664912Z           ]
2026-06-18T12:03:29.1665199Z         }
2026-06-18T12:03:29.1665476Z       }
2026-06-18T12:03:29.1665755Z     },
2026-06-18T12:03:29.1666035Z     {
2026-06-18T12:03:29.1666407Z       "id": "REQ-HAZARD-EPOCH-RESET",
2026-06-18T12:03:29.1670574Z       "title": "Advertisement-epoch reset strands a node: peers' higher last-seen epoch drops the reset node's fresh advertisements as Stale until the counter outruns history. Common case (full reinstall/re-pair) is mitigated by REQ-SUBNET-7's ceremony eviction (peer-side epoch memory dies with the deleted row — acceptance-verified); the residual narrow slice (epoch file lost, identity kept) is documented, guard deferred to a field hit (4.11)",
2026-06-18T12:03:29.1670901Z       "requiredStages": [],
2026-06-18T12:03:29.1671195Z       "stages": {
2026-06-18T12:03:29.1671480Z         "doc": {
2026-06-18T12:03:29.1671795Z           "complete": true,
2026-06-18T12:03:29.1672096Z           "evidence": [
2026-06-18T12:03:29.1672381Z             {
2026-06-18T12:03:29.1672740Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1673040Z               "line": 165
2026-06-18T12:03:29.1673325Z             }
2026-06-18T12:03:29.1673740Z           ]
2026-06-18T12:03:29.1674028Z         },
2026-06-18T12:03:29.1674319Z         "impl": {
2026-06-18T12:03:29.1674633Z           "complete": false,
2026-06-18T12:03:29.1674928Z           "evidence": []
2026-06-18T12:03:29.1675215Z         },
2026-06-18T12:03:29.1675501Z         "int": {
2026-06-18T12:03:29.1675815Z           "complete": false,
2026-06-18T12:03:29.1676121Z           "evidence": []
2026-06-18T12:03:29.1676513Z         },
2026-06-18T12:03:29.1676795Z         "unit": {
2026-06-18T12:03:29.1677114Z           "complete": false,
2026-06-18T12:03:29.1677411Z           "evidence": []
2026-06-18T12:03:29.1677691Z         }
2026-06-18T12:03:29.1677964Z       }
2026-06-18T12:03:29.1678245Z     },
2026-06-18T12:03:29.1678527Z     {
2026-06-18T12:03:29.1678909Z       "id": "REQ-HAZARD-EVENTPART-REASSEMBLY",
2026-06-18T12:03:29.1679688Z       "title": "EVENT-PART split/reassembly is byte-exact; orphan parts dropped silently",
2026-06-18T12:03:29.1679998Z       "requiredStages": [
2026-06-18T12:03:29.1680299Z         "impl",
2026-06-18T12:03:29.1680580Z         "unit"
2026-06-18T12:03:29.1680861Z       ],
2026-06-18T12:03:29.1681153Z       "stages": {
2026-06-18T12:03:29.1681447Z         "doc": {
2026-06-18T12:03:29.1681759Z           "complete": false,
2026-06-18T12:03:29.1682055Z           "evidence": []
2026-06-18T12:03:29.1682336Z         },
2026-06-18T12:03:29.1682626Z         "impl": {
2026-06-18T12:03:29.1682941Z           "complete": true,
2026-06-18T12:03:29.1683247Z           "evidence": [
2026-06-18T12:03:29.1683533Z             {
2026-06-18T12:03:29.1683935Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1684232Z               "line": 76
2026-06-18T12:03:29.1684530Z             },
2026-06-18T12:03:29.1684798Z             {
2026-06-18T12:03:29.1685188Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1685503Z               "line": 167
2026-06-18T12:03:29.1685785Z             },
2026-06-18T12:03:29.1686085Z             {
2026-06-18T12:03:29.1686467Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1686770Z               "line": 233
2026-06-18T12:03:29.1687050Z             },
2026-06-18T12:03:29.1687341Z             {
2026-06-18T12:03:29.1687731Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1688036Z               "line": 272
2026-06-18T12:03:29.1688323Z             }
2026-06-18T12:03:29.1688600Z           ]
2026-06-18T12:03:29.1688891Z         },
2026-06-18T12:03:29.1689243Z         "int": {
2026-06-18T12:03:29.1689572Z           "complete": false,
2026-06-18T12:03:29.1689882Z           "evidence": []
2026-06-18T12:03:29.1690158Z         },
2026-06-18T12:03:29.1690445Z         "unit": {
2026-06-18T12:03:29.1690759Z           "complete": true,
2026-06-18T12:03:29.1691055Z           "evidence": [
2026-06-18T12:03:29.1691332Z             {
2026-06-18T12:03:29.1691718Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1692026Z               "line": 321
2026-06-18T12:03:29.1692319Z             },
2026-06-18T12:03:29.1692605Z             {
2026-06-18T12:03:29.1692997Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1693303Z               "line": 329
2026-06-18T12:03:29.1693588Z             },
2026-06-18T12:03:29.1693879Z             {
2026-06-18T12:03:29.1694266Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1694571Z               "line": 356
2026-06-18T12:03:29.1694860Z             },
2026-06-18T12:03:29.1695144Z             {
2026-06-18T12:03:29.1695530Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1695822Z               "line": 395
2026-06-18T12:03:29.1696116Z             },
2026-06-18T12:03:29.1696407Z             {
2026-06-18T12:03:29.1696799Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1697100Z               "line": 406
2026-06-18T12:03:29.1697383Z             },
2026-06-18T12:03:29.1697676Z             {
2026-06-18T12:03:29.1698159Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1698464Z               "line": 418
2026-06-18T12:03:29.1698741Z             },
2026-06-18T12:03:29.1699098Z             {
2026-06-18T12:03:29.1699484Z               "path": "crates/spt-proto/src/chunk.rs",
2026-06-18T12:03:29.1699779Z               "line": 442
2026-06-18T12:03:29.1700061Z             }
2026-06-18T12:03:29.1700352Z           ]
2026-06-18T12:03:29.1700632Z         }
2026-06-18T12:03:29.1701024Z       }
2026-06-18T12:03:29.1701296Z     },
2026-06-18T12:03:29.1701568Z     {
2026-06-18T12:03:29.1701916Z       "id": "REQ-HAZARD-GEN-START-NOW",
2026-06-18T12:03:29.1702414Z       "title": "gen_start = now() on cold-start and handoff (2.4)",
2026-06-18T12:03:29.1702731Z       "requiredStages": [
2026-06-18T12:03:29.1703013Z         "impl",
2026-06-18T12:03:29.1703295Z         "int"
2026-06-18T12:03:29.1703576Z       ],
2026-06-18T12:03:29.1703858Z       "stages": {
2026-06-18T12:03:29.1704148Z         "doc": {
2026-06-18T12:03:29.1704478Z           "complete": false,
2026-06-18T12:03:29.1704778Z           "evidence": []
2026-06-18T12:03:29.1705060Z         },
2026-06-18T12:03:29.1705348Z         "impl": {
2026-06-18T12:03:29.1705660Z           "complete": true,
2026-06-18T12:03:29.1705966Z           "evidence": [
2026-06-18T12:03:29.1706251Z             {
2026-06-18T12:03:29.1706653Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.1706952Z               "line": 22
2026-06-18T12:03:29.1707239Z             }
2026-06-18T12:03:29.1707530Z           ]
2026-06-18T12:03:29.1707811Z         },
2026-06-18T12:03:29.1708094Z         "int": {
2026-06-18T12:03:29.1708400Z           "complete": true,
2026-06-18T12:03:29.1708705Z           "evidence": [
2026-06-18T12:03:29.1709048Z             {
2026-06-18T12:03:29.1709467Z               "path": "crates/spt-daemon/tests/handoff.rs",
2026-06-18T12:03:29.1709767Z               "line": 18
2026-06-18T12:03:29.1710053Z             }
2026-06-18T12:03:29.1710344Z           ]
2026-06-18T12:03:29.1710626Z         },
2026-06-18T12:03:29.1710917Z         "unit": {
2026-06-18T12:03:29.1711226Z           "complete": false,
2026-06-18T12:03:29.1711536Z           "evidence": []
2026-06-18T12:03:29.1715038Z         }
2026-06-18T12:03:29.1715586Z       }
2026-06-18T12:03:29.1715922Z     },
2026-06-18T12:03:29.1716206Z     {
2026-06-18T12:03:29.1716675Z       "id": "REQ-HAZARD-GRACE-BEFORE-SIGNOFF",
2026-06-18T12:03:29.1717323Z       "title": "Grace-period wait completes before composing INIT_SIGNOFF (1.1)",
2026-06-18T12:03:29.1717657Z       "requiredStages": [
2026-06-18T12:03:29.1717948Z         "impl",
2026-06-18T12:03:29.1718230Z         "unit"
2026-06-18T12:03:29.1718518Z       ],
2026-06-18T12:03:29.1718801Z       "stages": {
2026-06-18T12:03:29.1719169Z         "doc": {
2026-06-18T12:03:29.1719504Z           "complete": false,
2026-06-18T12:03:29.1719828Z           "evidence": []
2026-06-18T12:03:29.1720128Z         },
2026-06-18T12:03:29.1720419Z         "impl": {
2026-06-18T12:03:29.1720739Z           "complete": true,
2026-06-18T12:03:29.1721029Z           "evidence": [
2026-06-18T12:03:29.1721313Z             {
2026-06-18T12:03:29.1721734Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1722044Z               "line": 465
2026-06-18T12:03:29.1722325Z             },
2026-06-18T12:03:29.1722601Z             {
2026-06-18T12:03:29.1722998Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.1723307Z               "line": 27
2026-06-18T12:03:29.1723582Z             }
2026-06-18T12:03:29.1723861Z           ]
2026-06-18T12:03:29.1724138Z         },
2026-06-18T12:03:29.1724429Z         "int": {
2026-06-18T12:03:29.1724734Z           "complete": false,
2026-06-18T12:03:29.1725030Z           "evidence": []
2026-06-18T12:03:29.1725316Z         },
2026-06-18T12:03:29.1725598Z         "unit": {
2026-06-18T12:03:29.1725913Z           "complete": true,
2026-06-18T12:03:29.1726214Z           "evidence": [
2026-06-18T12:03:29.1726662Z             {
2026-06-18T12:03:29.1727076Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.1727376Z               "line": 990
2026-06-18T12:03:29.1727663Z             },
2026-06-18T12:03:29.1727939Z             {
2026-06-18T12:03:29.1728321Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.1728621Z               "line": 181
2026-06-18T12:03:29.1728912Z             }
2026-06-18T12:03:29.1729252Z           ]
2026-06-18T12:03:29.1729653Z         }
2026-06-18T12:03:29.1729929Z       }
2026-06-18T12:03:29.1730216Z     },
2026-06-18T12:03:29.1730492Z     {
2026-06-18T12:03:29.1730860Z       "id": "REQ-HAZARD-HANDOFF-ARGV-COMPAT",
2026-06-18T12:03:29.1731399Z       "title": "Broker/brain IPC + handoff argv version-tolerant (2.3)",
2026-06-18T12:03:29.1731714Z       "requiredStages": [
2026-06-18T12:03:29.1732003Z         "impl",
2026-06-18T12:03:29.1732289Z         "unit"
2026-06-18T12:03:29.1732570Z       ],
2026-06-18T12:03:29.1732851Z       "stages": {
2026-06-18T12:03:29.1733156Z         "doc": {
2026-06-18T12:03:29.1733466Z           "complete": false,
2026-06-18T12:03:29.1733767Z           "evidence": []
2026-06-18T12:03:29.1734053Z         },
2026-06-18T12:03:29.1734332Z         "impl": {
2026-06-18T12:03:29.1734647Z           "complete": true,
2026-06-18T12:03:29.1734947Z           "evidence": [
2026-06-18T12:03:29.1735228Z             {
2026-06-18T12:03:29.1735652Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1735957Z               "line": 73
2026-06-18T12:03:29.1736253Z             },
2026-06-18T12:03:29.1736534Z             {
2026-06-18T12:03:29.1736957Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1737265Z               "line": 972
2026-06-18T12:03:29.1737542Z             },
2026-06-18T12:03:29.1737837Z             {
2026-06-18T12:03:29.1738219Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1738529Z               "line": 20
2026-06-18T12:03:29.1738815Z             },
2026-06-18T12:03:29.1739162Z             {
2026-06-18T12:03:29.1739553Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1739850Z               "line": 100
2026-06-18T12:03:29.1740137Z             },
2026-06-18T12:03:29.1740419Z             {
2026-06-18T12:03:29.1740804Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.1741096Z               "line": 577
2026-06-18T12:03:29.1741376Z             },
2026-06-18T12:03:29.1741668Z             {
2026-06-18T12:03:29.1742078Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T12:03:29.1742372Z               "line": 68
2026-06-18T12:03:29.1742645Z             },
2026-06-18T12:03:29.1742926Z             {
2026-06-18T12:03:29.1743345Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T12:03:29.1743636Z               "line": 80
2026-06-18T12:03:29.1743917Z             }
2026-06-18T12:03:29.1744199Z           ]
2026-06-18T12:03:29.1744486Z         },
2026-06-18T12:03:29.1744779Z         "int": {
2026-06-18T12:03:29.1745096Z           "complete": true,
2026-06-18T12:03:29.1745392Z           "evidence": [
2026-06-18T12:03:29.1745682Z             {
2026-06-18T12:03:29.1746065Z               "path": "crates/spt/tests/n1_pairing.rs",
2026-06-18T12:03:29.1746365Z               "line": 44
2026-06-18T12:03:29.1746651Z             }
2026-06-18T12:03:29.1746937Z           ]
2026-06-18T12:03:29.1747223Z         },
2026-06-18T12:03:29.1747518Z         "unit": {
2026-06-18T12:03:29.1747825Z           "complete": true,
2026-06-18T12:03:29.1748125Z           "evidence": [
2026-06-18T12:03:29.1748412Z             {
2026-06-18T12:03:29.1748821Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1749174Z               "line": 1181
2026-06-18T12:03:29.1749451Z             },
2026-06-18T12:03:29.1749737Z             {
2026-06-18T12:03:29.1750151Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.1750453Z               "line": 1197
2026-06-18T12:03:29.1750864Z             },
2026-06-18T12:03:29.1751150Z             {
2026-06-18T12:03:29.1751546Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.1751842Z               "line": 1563
2026-06-18T12:03:29.1752129Z             },
2026-06-18T12:03:29.1752404Z             {
2026-06-18T12:03:29.1752801Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1753095Z               "line": 152
2026-06-18T12:03:29.1753481Z             },
2026-06-18T12:03:29.1753763Z             {
2026-06-18T12:03:29.1754153Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1754454Z               "line": 175
2026-06-18T12:03:29.1754745Z             },
2026-06-18T12:03:29.1755017Z             {
2026-06-18T12:03:29.1755406Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1755705Z               "line": 186
2026-06-18T12:03:29.1755985Z             },
2026-06-18T12:03:29.1756272Z             {
2026-06-18T12:03:29.1756663Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1756969Z               "line": 202
2026-06-18T12:03:29.1757250Z             },
2026-06-18T12:03:29.1757531Z             {
2026-06-18T12:03:29.1757928Z               "path": "crates/spt-daemon/src/frame.rs",
2026-06-18T12:03:29.1758225Z               "line": 216
2026-06-18T12:03:29.1758514Z             },
2026-06-18T12:03:29.1758785Z             {
2026-06-18T12:03:29.1759282Z               "path": "crates/spt-daemon/src/transport.rs",
2026-06-18T12:03:29.1759601Z               "line": 137
2026-06-18T12:03:29.1759892Z             },
2026-06-18T12:03:29.1760174Z             {
2026-06-18T12:03:29.1760522Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1760820Z               "line": 7963
2026-06-18T12:03:29.1761115Z             },
2026-06-18T12:03:29.1761395Z             {
2026-06-18T12:03:29.1761768Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-18T12:03:29.1762064Z               "line": 30
2026-06-18T12:03:29.1762354Z             },
2026-06-18T12:03:29.1762630Z             {
2026-06-18T12:03:29.1763008Z               "path": "crates/spt/tests/n1_compat.rs",
2026-06-18T12:03:29.1763313Z               "line": 73
2026-06-18T12:03:29.1763602Z             }
2026-06-18T12:03:29.1763892Z           ]
2026-06-18T12:03:29.1764169Z         }
2026-06-18T12:03:29.1764456Z       }
2026-06-18T12:03:29.1764732Z     },
2026-06-18T12:03:29.1765019Z     {
2026-06-18T12:03:29.1765438Z       "id": "REQ-HAZARD-HOSTED-LIVENESS-RECONCILE",
2026-06-18T12:03:29.1777973Z       "title": "B2 KEYSTONE: a daemon-hosted (spt-hosted) endpoint's info.json status is RECONCILED to real liveness, not left latched online. The broker exit-waiter (broker.rs:889-910) reaps its in-mem session table + emits ExitEvent but NEVER touches info.json; lifecycle::mark_offline only fires on Psyche teardown — so a dead/exited harness (operator closed the tab) stays status=online forever (is_perch_alive returns ONLINE for daemon-hosted, liveness.rs:80-93). FIX (doyle ruled PULL-PRIMARY — the live-status analog of REQ-HAZARD-ROSTER-GHOST): the livehost reconcile loop (reconcile_once livehost.rs:226-313) queries the broker's live session set (KIND_SESSIONS) each tick and, for any status=online live_agent perch PAST the boot grace whose endpoint has NO live broker session, marks it offline (lifecycle::mark_offline → status=offline → is_perch_alive=false). GATED on spt-hosted (controllable==Some(true)) so a HARNESS-HOSTED relay live agent (api listen, legitimately online with no broker session) is NEVER mis-marked. Crash-robust + self-healing on the next tick (clear-on-event is not crash-robust alone). PUSH (brain ExitEvent→mark_offline) is an OPTIONAL fast-path only if the daemon brain is reliably subscribed to all hosted sessions; correctness rides the pull. Broker stays stateless (ADR-0004 §B — brain owns the info.json write). (v0.12.0)",
2026-06-18T12:03:29.1778361Z       "requiredStages": [
2026-06-18T12:03:29.1778651Z         "impl",
2026-06-18T12:03:29.1779165Z         "unit",
2026-06-18T12:03:29.1779449Z         "int"
2026-06-18T12:03:29.1779730Z       ],
2026-06-18T12:03:29.1780012Z       "stages": {
2026-06-18T12:03:29.1780303Z         "doc": {
2026-06-18T12:03:29.1780608Z           "complete": false,
2026-06-18T12:03:29.1780913Z           "evidence": []
2026-06-18T12:03:29.1781198Z         },
2026-06-18T12:03:29.1781489Z         "impl": {
2026-06-18T12:03:29.1781793Z           "complete": true,
2026-06-18T12:03:29.1782215Z           "evidence": [
2026-06-18T12:03:29.1782501Z             {
2026-06-18T12:03:29.1782921Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1783227Z               "line": 510
2026-06-18T12:03:29.1783509Z             },
2026-06-18T12:03:29.1783790Z             {
2026-06-18T12:03:29.1784200Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1784501Z               "line": 692
2026-06-18T12:03:29.1784785Z             }
2026-06-18T12:03:29.1785075Z           ]
2026-06-18T12:03:29.1785361Z         },
2026-06-18T12:03:29.1785652Z         "int": {
2026-06-18T12:03:29.1785962Z           "complete": true,
2026-06-18T12:03:29.1786267Z           "evidence": [
2026-06-18T12:03:29.1786539Z             {
2026-06-18T12:03:29.1786948Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1787255Z               "line": 1060
2026-06-18T12:03:29.1787537Z             }
2026-06-18T12:03:29.1787823Z           ]
2026-06-18T12:03:29.1788110Z         },
2026-06-18T12:03:29.1788391Z         "unit": {
2026-06-18T12:03:29.1788696Z           "complete": true,
2026-06-18T12:03:29.1789044Z           "evidence": [
2026-06-18T12:03:29.1789331Z             {
2026-06-18T12:03:29.1789744Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1790047Z               "line": 809
2026-06-18T12:03:29.1790314Z             }
2026-06-18T12:03:29.1790601Z           ]
2026-06-18T12:03:29.1790882Z         }
2026-06-18T12:03:29.1791158Z       }
2026-06-18T12:03:29.1791434Z     },
2026-06-18T12:03:29.1791720Z     {
2026-06-18T12:03:29.1792054Z       "id": "REQ-HAZARD-ID-CHARSET",
2026-06-18T12:03:29.1792896Z       "title": "Addressable-id charset reserves :/@ delimiters; validated at every creation seam (4.6)",
2026-06-18T12:03:29.1793220Z       "requiredStages": [
2026-06-18T12:03:29.1793515Z         "impl",
2026-06-18T12:03:29.1793792Z         "unit"
2026-06-18T12:03:29.1794074Z       ],
2026-06-18T12:03:29.1794359Z       "stages": {
2026-06-18T12:03:29.1794650Z         "doc": {
2026-06-18T12:03:29.1794960Z           "complete": true,
2026-06-18T12:03:29.1795263Z           "evidence": [
2026-06-18T12:03:29.1795545Z             {
2026-06-18T12:03:29.1795911Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.1796221Z               "line": 133
2026-06-18T12:03:29.1796503Z             }
2026-06-18T12:03:29.1796785Z           ]
2026-06-18T12:03:29.1797065Z         },
2026-06-18T12:03:29.1797356Z         "impl": {
2026-06-18T12:03:29.1797665Z           "complete": true,
2026-06-18T12:03:29.1797974Z           "evidence": [
2026-06-18T12:03:29.1798255Z             {
2026-06-18T12:03:29.1798632Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.1798932Z               "line": 65
2026-06-18T12:03:29.1799285Z             },
2026-06-18T12:03:29.1799580Z             {
2026-06-18T12:03:29.1799947Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1800248Z               "line": 17
2026-06-18T12:03:29.1800546Z             },
2026-06-18T12:03:29.1800827Z             {
2026-06-18T12:03:29.1801232Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.1801532Z               "line": 146
2026-06-18T12:03:29.1801823Z             },
2026-06-18T12:03:29.1802100Z             {
2026-06-18T12:03:29.1802481Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.1802787Z               "line": 286
2026-06-18T12:03:29.1803066Z             },
2026-06-18T12:03:29.1803350Z             {
2026-06-18T12:03:29.1803850Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.1804160Z               "line": 417
2026-06-18T12:03:29.1804442Z             },
2026-06-18T12:03:29.1804723Z             {
2026-06-18T12:03:29.1805100Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.1805395Z               "line": 32
2026-06-18T12:03:29.1805682Z             },
2026-06-18T12:03:29.1805967Z             {
2026-06-18T12:03:29.1806315Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1806729Z               "line": 1264
2026-06-18T12:03:29.1807016Z             },
2026-06-18T12:03:29.1807302Z             {
2026-06-18T12:03:29.1807645Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1807954Z               "line": 6000
2026-06-18T12:03:29.1808234Z             },
2026-06-18T12:03:29.1808510Z             {
2026-06-18T12:03:29.1808868Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1809239Z               "line": 6282
2026-06-18T12:03:29.1809535Z             }
2026-06-18T12:03:29.1809816Z           ]
2026-06-18T12:03:29.1810103Z         },
2026-06-18T12:03:29.1810385Z         "int": {
2026-06-18T12:03:29.1810690Z           "complete": false,
2026-06-18T12:03:29.1811007Z           "evidence": []
2026-06-18T12:03:29.1811291Z         },
2026-06-18T12:03:29.1811576Z         "unit": {
2026-06-18T12:03:29.1811872Z           "complete": true,
2026-06-18T12:03:29.1812178Z           "evidence": [
2026-06-18T12:03:29.1812464Z             {
2026-06-18T12:03:29.1812840Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1813151Z               "line": 94
2026-06-18T12:03:29.1813436Z             },
2026-06-18T12:03:29.1813715Z             {
2026-06-18T12:03:29.1814077Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1814387Z               "line": 111
2026-06-18T12:03:29.1814669Z             },
2026-06-18T12:03:29.1814950Z             {
2026-06-18T12:03:29.1815322Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1815631Z               "line": 124
2026-06-18T12:03:29.1815908Z             },
2026-06-18T12:03:29.1816186Z             {
2026-06-18T12:03:29.1816552Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1816847Z               "line": 134
2026-06-18T12:03:29.1817133Z             },
2026-06-18T12:03:29.1817424Z             {
2026-06-18T12:03:29.1817787Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1818097Z               "line": 144
2026-06-18T12:03:29.1818383Z             },
2026-06-18T12:03:29.1818667Z             {
2026-06-18T12:03:29.1819109Z               "path": "crates/spt-proto/src/id.rs",
2026-06-18T12:03:29.1819399Z               "line": 156
2026-06-18T12:03:29.1819686Z             },
2026-06-18T12:03:29.1819957Z             {
2026-06-18T12:03:29.1820390Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.1820691Z               "line": 746
2026-06-18T12:03:29.1820978Z             },
2026-06-18T12:03:29.1821265Z             {
2026-06-18T12:03:29.1821676Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.1821985Z               "line": 309
2026-06-18T12:03:29.1822252Z             }
2026-06-18T12:03:29.1822539Z           ]
2026-06-18T12:03:29.1822810Z         }
2026-06-18T12:03:29.1823086Z       }
2026-06-18T12:03:29.1823362Z     },
2026-06-18T12:03:29.1823634Z     {
2026-06-18T12:03:29.1823996Z       "id": "REQ-HAZARD-INBOX-NO-DOUBLE",
2026-06-18T12:03:29.1824446Z       "title": "No double-delivery via legacy inbox (4.5)",
2026-06-18T12:03:29.1824766Z       "requiredStages": [
2026-06-18T12:03:29.1825052Z         "impl",
2026-06-18T12:03:29.1825332Z         "unit"
2026-06-18T12:03:29.1825614Z       ],
2026-06-18T12:03:29.1825906Z       "stages": {
2026-06-18T12:03:29.1826201Z         "doc": {
2026-06-18T12:03:29.1826516Z           "complete": false,
2026-06-18T12:03:29.1826825Z           "evidence": []
2026-06-18T12:03:29.1827097Z         },
2026-06-18T12:03:29.1827393Z         "impl": {
2026-06-18T12:03:29.1827812Z           "complete": true,
2026-06-18T12:03:29.1828112Z           "evidence": [
2026-06-18T12:03:29.1828399Z             {
2026-06-18T12:03:29.1828784Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.1829174Z               "line": 128
2026-06-18T12:03:29.1829449Z             }
2026-06-18T12:03:29.1829740Z           ]
2026-06-18T12:03:29.1830022Z         },
2026-06-18T12:03:29.1830317Z         "int": {
2026-06-18T12:03:29.1830764Z           "complete": false,
2026-06-18T12:03:29.1831060Z           "evidence": []
2026-06-18T12:03:29.1831347Z         },
2026-06-18T12:03:29.1831632Z         "unit": {
2026-06-18T12:03:29.1831942Z           "complete": true,
2026-06-18T12:03:29.1832236Z           "evidence": [
2026-06-18T12:03:29.1832512Z             {
2026-06-18T12:03:29.1832908Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.1833203Z               "line": 205
2026-06-18T12:03:29.1833489Z             }
2026-06-18T12:03:29.1833781Z           ]
2026-06-18T12:03:29.1834062Z         }
2026-06-18T12:03:29.1834334Z       }
2026-06-18T12:03:29.1834612Z     },
2026-06-18T12:03:29.1834892Z     {
2026-06-18T12:03:29.1835268Z       "id": "REQ-HAZARD-INFO-JSON-TORN-READ",
2026-06-18T12:03:29.1835765Z       "title": "State-file reads tolerate concurrent writes (1.2)",
2026-06-18T12:03:29.1836089Z       "requiredStages": [
2026-06-18T12:03:29.1836380Z         "impl",
2026-06-18T12:03:29.1836667Z         "unit"
2026-06-18T12:03:29.1836963Z       ],
2026-06-18T12:03:29.1837249Z       "stages": {
2026-06-18T12:03:29.1837533Z         "doc": {
2026-06-18T12:03:29.1837847Z           "complete": false,
2026-06-18T12:03:29.1838147Z           "evidence": []
2026-06-18T12:03:29.1838429Z         },
2026-06-18T12:03:29.1838711Z         "impl": {
2026-06-18T12:03:29.1839096Z           "complete": true,
2026-06-18T12:03:29.1839401Z           "evidence": [
2026-06-18T12:03:29.1839687Z             {
2026-06-18T12:03:29.1840071Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1840361Z               "line": 342
2026-06-18T12:03:29.1840652Z             },
2026-06-18T12:03:29.1840939Z             {
2026-06-18T12:03:29.1841324Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1841620Z               "line": 353
2026-06-18T12:03:29.1841902Z             },
2026-06-18T12:03:29.1842192Z             {
2026-06-18T12:03:29.1842564Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1842876Z               "line": 371
2026-06-18T12:03:29.1843153Z             }
2026-06-18T12:03:29.1843439Z           ]
2026-06-18T12:03:29.1843721Z         },
2026-06-18T12:03:29.1844007Z         "int": {
2026-06-18T12:03:29.1844327Z           "complete": false,
2026-06-18T12:03:29.1844627Z           "evidence": []
2026-06-18T12:03:29.1844909Z         },
2026-06-18T12:03:29.1845196Z         "unit": {
2026-06-18T12:03:29.1845518Z           "complete": true,
2026-06-18T12:03:29.1845819Z           "evidence": [
2026-06-18T12:03:29.1846105Z             {
2026-06-18T12:03:29.1846492Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1846792Z               "line": 395
2026-06-18T12:03:29.1847078Z             },
2026-06-18T12:03:29.1847364Z             {
2026-06-18T12:03:29.1847736Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1848044Z               "line": 416
2026-06-18T12:03:29.1848326Z             },
2026-06-18T12:03:29.1848608Z             {
2026-06-18T12:03:29.1849061Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1849361Z               "line": 785
2026-06-18T12:03:29.1849656Z             },
2026-06-18T12:03:29.1849929Z             {
2026-06-18T12:03:29.1850309Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1850607Z               "line": 796
2026-06-18T12:03:29.1850888Z             },
2026-06-18T12:03:29.1851170Z             {
2026-06-18T12:03:29.1851546Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1851967Z               "line": 809
2026-06-18T12:03:29.1852248Z             }
2026-06-18T12:03:29.1852538Z           ]
2026-06-18T12:03:29.1852820Z         }
2026-06-18T12:03:29.1853100Z       }
2026-06-18T12:03:29.1853370Z     },
2026-06-18T12:03:29.1853661Z     {
2026-06-18T12:03:29.1854019Z       "id": "REQ-HAZARD-INSTANT-UNDERFLOW",
2026-06-18T12:03:29.1855956Z       "title": "Scheduling never subtracts a Duration from Instant::now() (underflow-panics on a host booted more recently than the offset); 'due now / never run' is Option<Instant>=None gated on forward duration_since only (5.9)",
2026-06-18T12:03:29.1856389Z       "requiredStages": [
2026-06-18T12:03:29.1856675Z         "impl",
2026-06-18T12:03:29.1856970Z         "unit"
2026-06-18T12:03:29.1857248Z       ],
2026-06-18T12:03:29.1857533Z       "stages": {
2026-06-18T12:03:29.1857825Z         "doc": {
2026-06-18T12:03:29.1858126Z           "complete": false,
2026-06-18T12:03:29.1858427Z           "evidence": []
2026-06-18T12:03:29.1858715Z         },
2026-06-18T12:03:29.1859068Z         "impl": {
2026-06-18T12:03:29.1859383Z           "complete": true,
2026-06-18T12:03:29.1859693Z           "evidence": [
2026-06-18T12:03:29.1859980Z             {
2026-06-18T12:03:29.1860384Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.1860680Z               "line": 759
2026-06-18T12:03:29.1860960Z             }
2026-06-18T12:03:29.1861248Z           ]
2026-06-18T12:03:29.1861525Z         },
2026-06-18T12:03:29.1861810Z         "int": {
2026-06-18T12:03:29.1862134Z           "complete": false,
2026-06-18T12:03:29.1862435Z           "evidence": []
2026-06-18T12:03:29.1862717Z         },
2026-06-18T12:03:29.1863003Z         "unit": {
2026-06-18T12:03:29.1863313Z           "complete": true,
2026-06-18T12:03:29.1863609Z           "evidence": [
2026-06-18T12:03:29.1863898Z             {
2026-06-18T12:03:29.1864311Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.1864612Z               "line": 873
2026-06-18T12:03:29.1864898Z             }
2026-06-18T12:03:29.1865179Z           ]
2026-06-18T12:03:29.1865466Z         }
2026-06-18T12:03:29.1865743Z       }
2026-06-18T12:03:29.1866024Z     },
2026-06-18T12:03:29.1866303Z     {
2026-06-18T12:03:29.1866725Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-LIVENESS-GATE",
2026-06-18T12:03:29.1874136Z       "title": "B5: `spt daemon start` does NOT revive phantom Psyches for dead-but-online-latched perches. Today reconcile_once (livehost.rs:285) spawns a Psyche per status=online live_agent perch at boot WITHOUT verifying the harness child / {id}-psyche is actually alive — so a Cold start after an unclean stop revives N psyches for N dead-but-latched perches (3 psyches for 3 dead perches). FIX: gate the boot psyche-spawn on real child-liveness — a perch with NO live broker session (the B2 reconcile signal) is marked OFFLINE at boot instead of hosted, so a dead-harness perch is never revived. Shares the B2 reconcile loop (this is its boot-gate arm); composes with B2's honest latch. Also closes wall-a's psyche_host_error gap (residency-confirm does not run at boot tick-1, livehost.rs:395-441 / 257-263). (v0.12.0)",
2026-06-18T12:03:29.1874495Z       "requiredStages": [
2026-06-18T12:03:29.1874786Z         "impl",
2026-06-18T12:03:29.1875077Z         "unit",
2026-06-18T12:03:29.1875363Z         "int"
2026-06-18T12:03:29.1875644Z       ],
2026-06-18T12:03:29.1875940Z       "stages": {
2026-06-18T12:03:29.1876225Z         "doc": {
2026-06-18T12:03:29.1876569Z           "complete": false,
2026-06-18T12:03:29.1876877Z           "evidence": []
2026-06-18T12:03:29.1877161Z         },
2026-06-18T12:03:29.1877452Z         "impl": {
2026-06-18T12:03:29.1877771Z           "complete": true,
2026-06-18T12:03:29.1878077Z           "evidence": [
2026-06-18T12:03:29.1878363Z             {
2026-06-18T12:03:29.1878778Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1879146Z               "line": 693
2026-06-18T12:03:29.1879451Z             }
2026-06-18T12:03:29.1879730Z           ]
2026-06-18T12:03:29.1880122Z         },
2026-06-18T12:03:29.1880412Z         "int": {
2026-06-18T12:03:29.1880722Z           "complete": true,
2026-06-18T12:03:29.1881027Z           "evidence": [
2026-06-18T12:03:29.1881308Z             {
2026-06-18T12:03:29.1881763Z               "path": "crates/spt/tests/livehost_bootgate_e2e.rs",
2026-06-18T12:03:29.1882066Z               "line": 24
2026-06-18T12:03:29.1882350Z             }
2026-06-18T12:03:29.1882640Z           ]
2026-06-18T12:03:29.1883023Z         },
2026-06-18T12:03:29.1883313Z         "unit": {
2026-06-18T12:03:29.1883623Z           "complete": true,
2026-06-18T12:03:29.1883928Z           "evidence": [
2026-06-18T12:03:29.1884209Z             {
2026-06-18T12:03:29.1884626Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1884933Z               "line": 859
2026-06-18T12:03:29.1885207Z             }
2026-06-18T12:03:29.1885497Z           ]
2026-06-18T12:03:29.1885774Z         }
2026-06-18T12:03:29.1886061Z       }
2026-06-18T12:03:29.1886342Z     },
2026-06-18T12:03:29.1886624Z     {
2026-06-18T12:03:29.1886985Z       "id": "REQ-HAZARD-LIVEHOST-BOOT-RACE",
2026-06-18T12:03:29.1898239Z       "title": "The brain's daemon-hosted Psyche lifecycle surfaces a host-FAILURE on the live perch (harness-diagnosable) and runs net-INDEPENDENTLY. When reconcile_once→host_one→spawn_psyche fails for a state=live_agent+status=online endpoint (e.g. the adapter's psyche binary absent from its install dir, REQ-INSTALL-11), the failure MUST be written to the perch info.json as a CURRENT-STATE field (reason + ts + attempt count; overwritten each 5s retry, CLEARED on successful host) and surfaced by `spt endpoint list`/status — never left as an eprintln on the brain's invisible stderr where a harness reading only perch state is blind. status=online stays authoritative (agent reachable; only the Psyche is missing — brain-restart rehydrate legitimately has online-without-Psyche windows), so this is a SEPARATE psyche-host-health field, never a status de-stamp. Net-independence is a locked-in invariant: spawn_live_host (brainproc.rs:230) reaches the reconcile and hosts the Psyche on a net-less/unpaired/peer-pump-STALLED node, proven by a REAL detached-daemon E2E (real broker→brain-child, real api seed+listen, real install-dir psyche binary). spt-core SURFACES the failure; the adapter owns fixing its packaging.",
2026-06-18T12:03:29.1898629Z       "requiredStages": [
2026-06-18T12:03:29.1898925Z         "impl",
2026-06-18T12:03:29.1899322Z         "unit",
2026-06-18T12:03:29.1899622Z         "int"
2026-06-18T12:03:29.1899903Z       ],
2026-06-18T12:03:29.1900184Z       "stages": {
2026-06-18T12:03:29.1900470Z         "doc": {
2026-06-18T12:03:29.1900784Z           "complete": false,
2026-06-18T12:03:29.1901094Z           "evidence": []
2026-06-18T12:03:29.1901376Z         },
2026-06-18T12:03:29.1901672Z         "impl": {
2026-06-18T12:03:29.1901981Z           "complete": true,
2026-06-18T12:03:29.1902296Z           "evidence": [
2026-06-18T12:03:29.1902625Z             {
2026-06-18T12:03:29.1903038Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1903355Z               "line": 391
2026-06-18T12:03:29.1903642Z             },
2026-06-18T12:03:29.1903933Z             {
2026-06-18T12:03:29.1904314Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1904610Z               "line": 318
2026-06-18T12:03:29.1904900Z             },
2026-06-18T12:03:29.1905178Z             {
2026-06-18T12:03:29.1905544Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1905849Z               "line": 1637
2026-06-18T12:03:29.1906129Z             },
2026-06-18T12:03:29.1906419Z             {
2026-06-18T12:03:29.1906776Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1907086Z               "line": 3049
2026-06-18T12:03:29.1907368Z             }
2026-06-18T12:03:29.1907659Z           ]
2026-06-18T12:03:29.1907935Z         },
2026-06-18T12:03:29.1908226Z         "int": {
2026-06-18T12:03:29.1908649Z           "complete": true,
2026-06-18T12:03:29.1909024Z           "evidence": [
2026-06-18T12:03:29.1909314Z             {
2026-06-18T12:03:29.1909762Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T12:03:29.1910067Z               "line": 353
2026-06-18T12:03:29.1910349Z             },
2026-06-18T12:03:29.1910639Z             {
2026-06-18T12:03:29.1911122Z               "path": "crates/spt/tests/livehost_psyche_fail_e2e.rs",
2026-06-18T12:03:29.1911530Z               "line": 23
2026-06-18T12:03:29.1911821Z             }
2026-06-18T12:03:29.1912093Z           ]
2026-06-18T12:03:29.1912378Z         },
2026-06-18T12:03:29.1912670Z         "unit": {
2026-06-18T12:03:29.1912980Z           "complete": true,
2026-06-18T12:03:29.1913285Z           "evidence": [
2026-06-18T12:03:29.1913566Z             {
2026-06-18T12:03:29.1913939Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.1914240Z               "line": 717
2026-06-18T12:03:29.1914526Z             },
2026-06-18T12:03:29.1914812Z             {
2026-06-18T12:03:29.1915165Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.1915475Z               "line": 7702
2026-06-18T12:03:29.1915775Z             }
2026-06-18T12:03:29.1916062Z           ]
2026-06-18T12:03:29.1916339Z         }
2026-06-18T12:03:29.1916628Z       }
2026-06-18T12:03:29.1916902Z     },
2026-06-18T12:03:29.1917188Z     {
2026-06-18T12:03:29.1917575Z       "id": "REQ-HAZARD-LIVEHOST-NONRESIDENT",
2026-06-18T12:03:29.1927873Z       "title": "A daemon-hosted Psyche that spawns then EXITS IMMEDIATELY is a host failure, surfaced like a spawn failure (closes the v0.8.1 residual masking): the REQ-HAZARD-LIVEHOST-BOOT-RACE signal stamps `psyche_host_error` only when `spawn_psyche` returns Err, NOT when the detached spawn() returns Ok but the child dies within moments (e.g. a bad-argv child exiting 2 — the F-009 case). That leaves the residual 'online + no Psyche + no cause' gap: the nested `{id}-psyche` info.json is written status=online with a real-but-DEAD pid and the PARENT perch carries NO psyche_host_error (perri's F-010: tasklist showed 0 host procs across the window while info.json read online). The host MUST confirm RESIDENCY — a hosted child not alive (or whose `{id}-psyche` perch never re-registers / has a dead pid) within N seconds of spawn is treated as a host failure: stamp the parent perch `psyche_host_error{reason:\"host not resident within <n>s (psyche perch missing/dead pid)\"}` (and do not leave a phantom online nested perch). Closes the last masking gap the v0.8.1 fix left open. perri's F-010 (v0.8.1 dogfood). Sibling of REQ-HAZARD-LIVEHOST-BOOT-RACE.",
2026-06-18T12:03:29.1928259Z       "requiredStages": [
2026-06-18T12:03:29.1928545Z         "impl",
2026-06-18T12:03:29.1928836Z         "unit",
2026-06-18T12:03:29.1929175Z         "int"
2026-06-18T12:03:29.1929461Z       ],
2026-06-18T12:03:29.1929750Z       "stages": {
2026-06-18T12:03:29.1930039Z         "doc": {
2026-06-18T12:03:29.1930348Z           "complete": false,
2026-06-18T12:03:29.1930673Z           "evidence": []
2026-06-18T12:03:29.1930959Z         },
2026-06-18T12:03:29.1931245Z         "impl": {
2026-06-18T12:03:29.1931559Z           "complete": true,
2026-06-18T12:03:29.1931846Z           "evidence": [
2026-06-18T12:03:29.1932131Z             {
2026-06-18T12:03:29.1932536Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1932841Z               "line": 64
2026-06-18T12:03:29.1933127Z             },
2026-06-18T12:03:29.1933423Z             {
2026-06-18T12:03:29.1933823Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1934119Z               "line": 78
2026-06-18T12:03:29.1934400Z             },
2026-06-18T12:03:29.1934686Z             {
2026-06-18T12:03:29.1935102Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1935398Z               "line": 170
2026-06-18T12:03:29.1935684Z             },
2026-06-18T12:03:29.1935980Z             {
2026-06-18T12:03:29.1936390Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1936802Z               "line": 185
2026-06-18T12:03:29.1937088Z             },
2026-06-18T12:03:29.1937369Z             {
2026-06-18T12:03:29.1937767Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1938075Z               "line": 195
2026-06-18T12:03:29.1938361Z             },
2026-06-18T12:03:29.1938652Z             {
2026-06-18T12:03:29.1939119Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1939562Z               "line": 205
2026-06-18T12:03:29.1939863Z             },
2026-06-18T12:03:29.1940148Z             {
2026-06-18T12:03:29.1940551Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1940856Z               "line": 294
2026-06-18T12:03:29.1941137Z             },
2026-06-18T12:03:29.1941419Z             {
2026-06-18T12:03:29.1941819Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1942134Z               "line": 308
2026-06-18T12:03:29.1942429Z             },
2026-06-18T12:03:29.1942706Z             {
2026-06-18T12:03:29.1943110Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1943401Z               "line": 377
2026-06-18T12:03:29.1943682Z             },
2026-06-18T12:03:29.1943960Z             {
2026-06-18T12:03:29.1944364Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1944674Z               "line": 437
2026-06-18T12:03:29.1944970Z             },
2026-06-18T12:03:29.1945256Z             {
2026-06-18T12:03:29.1945658Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1945963Z               "line": 455
2026-06-18T12:03:29.1946235Z             }
2026-06-18T12:03:29.1946521Z           ]
2026-06-18T12:03:29.1946808Z         },
2026-06-18T12:03:29.1947084Z         "int": {
2026-06-18T12:03:29.1947399Z           "complete": true,
2026-06-18T12:03:29.1947691Z           "evidence": [
2026-06-18T12:03:29.1947977Z             {
2026-06-18T12:03:29.1948430Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T12:03:29.1948731Z               "line": 45
2026-06-18T12:03:29.1949111Z             },
2026-06-18T12:03:29.1949394Z             {
2026-06-18T12:03:29.1949851Z               "path": "crates/spt/tests/livehost_bootrace_e2e.rs",
2026-06-18T12:03:29.1950161Z               "line": 354
2026-06-18T12:03:29.1950447Z             },
2026-06-18T12:03:29.1950727Z             {
2026-06-18T12:03:29.1951216Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-18T12:03:29.1951522Z               "line": 31
2026-06-18T12:03:29.1951808Z             }
2026-06-18T12:03:29.1952079Z           ]
2026-06-18T12:03:29.1952351Z         },
2026-06-18T12:03:29.1952647Z         "unit": {
2026-06-18T12:03:29.1952957Z           "complete": true,
2026-06-18T12:03:29.1953266Z           "evidence": [
2026-06-18T12:03:29.1953557Z             {
2026-06-18T12:03:29.1953966Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.1954295Z               "line": 715
2026-06-18T12:03:29.1954572Z             }
2026-06-18T12:03:29.1954859Z           ]
2026-06-18T12:03:29.1955139Z         }
2026-06-18T12:03:29.1955421Z       }
2026-06-18T12:03:29.1955703Z     },
2026-06-18T12:03:29.1955977Z     {
2026-06-18T12:03:29.1956328Z       "id": "REQ-HAZARD-LOCAL-API-AUTH",
2026-06-18T12:03:29.1957043Z       "title": "Every local `api` mutation authenticated to an endpoint/session (codex #13)",
2026-06-18T12:03:29.1957363Z       "requiredStages": [
2026-06-18T12:03:29.1957645Z         "impl",
2026-06-18T12:03:29.1957936Z         "unit"
2026-06-18T12:03:29.1958222Z       ],
2026-06-18T12:03:29.1958504Z       "stages": {
2026-06-18T12:03:29.1958787Z         "doc": {
2026-06-18T12:03:29.1959176Z           "complete": false,
2026-06-18T12:03:29.1959477Z           "evidence": []
2026-06-18T12:03:29.1959752Z         },
2026-06-18T12:03:29.1960044Z         "impl": {
2026-06-18T12:03:29.1960359Z           "complete": true,
2026-06-18T12:03:29.1960765Z           "evidence": [
2026-06-18T12:03:29.1961046Z             {
2026-06-18T12:03:29.1961406Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1961709Z               "line": 14
2026-06-18T12:03:29.1965137Z             },
2026-06-18T12:03:29.1965456Z             {
2026-06-18T12:03:29.1965843Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.1966153Z               "line": 566
2026-06-18T12:03:29.1966595Z             }
2026-06-18T12:03:29.1966879Z           ]
2026-06-18T12:03:29.1967170Z         },
2026-06-18T12:03:29.1967455Z         "int": {
2026-06-18T12:03:29.1967775Z           "complete": false,
2026-06-18T12:03:29.1968085Z           "evidence": []
2026-06-18T12:03:29.1968371Z         },
2026-06-18T12:03:29.1968657Z         "unit": {
2026-06-18T12:03:29.1969044Z           "complete": true,
2026-06-18T12:03:29.1969366Z           "evidence": [
2026-06-18T12:03:29.1969655Z             {
2026-06-18T12:03:29.1970027Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1970327Z               "line": 130
2026-06-18T12:03:29.1970608Z             },
2026-06-18T12:03:29.1970890Z             {
2026-06-18T12:03:29.1971258Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1971553Z               "line": 138
2026-06-18T12:03:29.1971833Z             },
2026-06-18T12:03:29.1972117Z             {
2026-06-18T12:03:29.1972479Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1972789Z               "line": 146
2026-06-18T12:03:29.1973057Z             },
2026-06-18T12:03:29.1973343Z             {
2026-06-18T12:03:29.1973705Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1974000Z               "line": 154
2026-06-18T12:03:29.1974292Z             },
2026-06-18T12:03:29.1974579Z             {
2026-06-18T12:03:29.1974930Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1975250Z               "line": 162
2026-06-18T12:03:29.1975531Z             },
2026-06-18T12:03:29.1975817Z             {
2026-06-18T12:03:29.1976179Z               "path": "crates/spt/src/api/auth.rs",
2026-06-18T12:03:29.1976471Z               "line": 170
2026-06-18T12:03:29.1976761Z             }
2026-06-18T12:03:29.1977036Z           ]
2026-06-18T12:03:29.1977319Z         }
2026-06-18T12:03:29.1977601Z       }
2026-06-18T12:03:29.1977878Z     },
2026-06-18T12:03:29.1978154Z     {
2026-06-18T12:03:29.1978512Z       "id": "REQ-HAZARD-PAIR-RATE-LIMIT",
2026-06-18T12:03:29.1981383Z       "title": "Subnet-global pairing rate limit: one active ceremony per subnet, shared attempt counter, exponential backoff — a public pre-trust relay + multiple seed-holders otherwise enables distributed SPAKE2 guessing (and ±1 TOTP window triples the valid-password space) (ADR-0005 #11)",
2026-06-18T12:03:29.1981707Z       "requiredStages": [
2026-06-18T12:03:29.1982003Z         "impl",
2026-06-18T12:03:29.1982286Z         "unit"
2026-06-18T12:03:29.1982575Z       ],
2026-06-18T12:03:29.1982882Z       "stages": {
2026-06-18T12:03:29.1983193Z         "doc": {
2026-06-18T12:03:29.1983503Z           "complete": false,
2026-06-18T12:03:29.1983803Z           "evidence": []
2026-06-18T12:03:29.1984098Z         },
2026-06-18T12:03:29.1984384Z         "impl": {
2026-06-18T12:03:29.1984699Z           "complete": true,
2026-06-18T12:03:29.1985009Z           "evidence": [
2026-06-18T12:03:29.1985294Z             {
2026-06-18T12:03:29.1985771Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1986096Z               "line": 34
2026-06-18T12:03:29.1986392Z             }
2026-06-18T12:03:29.1986677Z           ]
2026-06-18T12:03:29.1986963Z         },
2026-06-18T12:03:29.1987244Z         "int": {
2026-06-18T12:03:29.1987558Z           "complete": false,
2026-06-18T12:03:29.1987860Z           "evidence": []
2026-06-18T12:03:29.1988137Z         },
2026-06-18T12:03:29.1988428Z         "unit": {
2026-06-18T12:03:29.1988738Z           "complete": true,
2026-06-18T12:03:29.1989110Z           "evidence": [
2026-06-18T12:03:29.1989500Z             {
2026-06-18T12:03:29.1989969Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1990260Z               "line": 188
2026-06-18T12:03:29.1990540Z             },
2026-06-18T12:03:29.1990833Z             {
2026-06-18T12:03:29.1991296Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1991601Z               "line": 200
2026-06-18T12:03:29.1991892Z             },
2026-06-18T12:03:29.1992263Z             {
2026-06-18T12:03:29.1992736Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1993029Z               "line": 211
2026-06-18T12:03:29.1993337Z             },
2026-06-18T12:03:29.1993618Z             {
2026-06-18T12:03:29.1994092Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1994402Z               "line": 253
2026-06-18T12:03:29.1994678Z             },
2026-06-18T12:03:29.1994968Z             {
2026-06-18T12:03:29.1995431Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1995741Z               "line": 277
2026-06-18T12:03:29.1996031Z             },
2026-06-18T12:03:29.1996307Z             {
2026-06-18T12:03:29.1996765Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1997060Z               "line": 300
2026-06-18T12:03:29.1997351Z             },
2026-06-18T12:03:29.1997634Z             {
2026-06-18T12:03:29.1998108Z               "path": "crates/spt-net/src/net/pairing/ratelimit.rs",
2026-06-18T12:03:29.1998416Z               "line": 316
2026-06-18T12:03:29.1998702Z             }
2026-06-18T12:03:29.1999060Z           ]
2026-06-18T12:03:29.1999350Z         }
2026-06-18T12:03:29.1999632Z       }
2026-06-18T12:03:29.1999913Z     },
2026-06-18T12:03:29.2000205Z     {
2026-06-18T12:03:29.2000562Z       "id": "REQ-HAZARD-PAIR-SEED-ROTATION",
2026-06-18T12:03:29.2002366Z       "title": "Removing a node rotates the subnet seed (epoch bump) so an old node/old seed cannot rejoin; trust-store delete alone is NOT revocation because the seed is replicated to every trusted node (ADR-0005 #10)",
2026-06-18T12:03:29.2002701Z       "requiredStages": [
2026-06-18T12:03:29.2002991Z         "impl",
2026-06-18T12:03:29.2003282Z         "unit"
2026-06-18T12:03:29.2003566Z       ],
2026-06-18T12:03:29.2003864Z       "stages": {
2026-06-18T12:03:29.2004150Z         "doc": {
2026-06-18T12:03:29.2004465Z           "complete": false,
2026-06-18T12:03:29.2004776Z           "evidence": []
2026-06-18T12:03:29.2005051Z         },
2026-06-18T12:03:29.2005338Z         "impl": {
2026-06-18T12:03:29.2005653Z           "complete": true,
2026-06-18T12:03:29.2005954Z           "evidence": [
2026-06-18T12:03:29.2006245Z             {
2026-06-18T12:03:29.2006645Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2006939Z               "line": 29
2026-06-18T12:03:29.2007226Z             },
2026-06-18T12:03:29.2007512Z             {
2026-06-18T12:03:29.2007902Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2008208Z               "line": 174
2026-06-18T12:03:29.2008485Z             },
2026-06-18T12:03:29.2008768Z             {
2026-06-18T12:03:29.2009243Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2009553Z               "line": 194
2026-06-18T12:03:29.2009840Z             },
2026-06-18T12:03:29.2010121Z             {
2026-06-18T12:03:29.2010497Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2010802Z               "line": 222
2026-06-18T12:03:29.2011075Z             }
2026-06-18T12:03:29.2011357Z           ]
2026-06-18T12:03:29.2011640Z         },
2026-06-18T12:03:29.2011934Z         "int": {
2026-06-18T12:03:29.2012239Z           "complete": false,
2026-06-18T12:03:29.2012534Z           "evidence": []
2026-06-18T12:03:29.2012811Z         },
2026-06-18T12:03:29.2013088Z         "unit": {
2026-06-18T12:03:29.2013393Z           "complete": true,
2026-06-18T12:03:29.2013803Z           "evidence": [
2026-06-18T12:03:29.2014088Z             {
2026-06-18T12:03:29.2014476Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2014781Z               "line": 329
2026-06-18T12:03:29.2015072Z             },
2026-06-18T12:03:29.2015359Z             {
2026-06-18T12:03:29.2015750Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2016050Z               "line": 344
2026-06-18T12:03:29.2016327Z             },
2026-06-18T12:03:29.2016719Z             {
2026-06-18T12:03:29.2017108Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2017414Z               "line": 417
2026-06-18T12:03:29.2017694Z             },
2026-06-18T12:03:29.2017985Z             {
2026-06-18T12:03:29.2018368Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2018673Z               "line": 433
2026-06-18T12:03:29.2019045Z             },
2026-06-18T12:03:29.2019324Z             {
2026-06-18T12:03:29.2019713Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2020019Z               "line": 492
2026-06-18T12:03:29.2020300Z             },
2026-06-18T12:03:29.2020581Z             {
2026-06-18T12:03:29.2020968Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2021268Z               "line": 506
2026-06-18T12:03:29.2021555Z             },
2026-06-18T12:03:29.2021840Z             {
2026-06-18T12:03:29.2022229Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2022542Z               "line": 517
2026-06-18T12:03:29.2022828Z             },
2026-06-18T12:03:29.2023118Z             {
2026-06-18T12:03:29.2023501Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2023796Z               "line": 528
2026-06-18T12:03:29.2024092Z             }
2026-06-18T12:03:29.2024364Z           ]
2026-06-18T12:03:29.2024649Z         }
2026-06-18T12:03:29.2024918Z       }
2026-06-18T12:03:29.2025200Z     },
2026-06-18T12:03:29.2025486Z     {
2026-06-18T12:03:29.2025876Z       "id": "REQ-HAZARD-PAIR-TRANSCRIPT-BIND",
2026-06-18T12:03:29.2027868Z       "title": "Pairing transcript binds roles, both node pubkeys, subnet ID, seed epoch, TOTP time-step, and confirmation MACs — or unknown-key-share/reflection/wrong-subnet/replay pairing remain possible (ADR-0005 #12)",
2026-06-18T12:03:29.2028187Z       "requiredStages": [
2026-06-18T12:03:29.2028469Z         "impl",
2026-06-18T12:03:29.2028755Z         "unit"
2026-06-18T12:03:29.2029127Z       ],
2026-06-18T12:03:29.2029417Z       "stages": {
2026-06-18T12:03:29.2029704Z         "doc": {
2026-06-18T12:03:29.2030017Z           "complete": false,
2026-06-18T12:03:29.2030322Z           "evidence": []
2026-06-18T12:03:29.2030603Z         },
2026-06-18T12:03:29.2030894Z         "impl": {
2026-06-18T12:03:29.2031189Z           "complete": true,
2026-06-18T12:03:29.2031485Z           "evidence": [
2026-06-18T12:03:29.2031761Z             {
2026-06-18T12:03:29.2032196Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2032511Z               "line": 27
2026-06-18T12:03:29.2032804Z             },
2026-06-18T12:03:29.2033088Z             {
2026-06-18T12:03:29.2033532Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2033846Z               "line": 110
2026-06-18T12:03:29.2034123Z             },
2026-06-18T12:03:29.2034405Z             {
2026-06-18T12:03:29.2034837Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2035147Z               "line": 153
2026-06-18T12:03:29.2035436Z             },
2026-06-18T12:03:29.2035717Z             {
2026-06-18T12:03:29.2036155Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2036446Z               "line": 182
2026-06-18T12:03:29.2036732Z             },
2026-06-18T12:03:29.2037018Z             {
2026-06-18T12:03:29.2037490Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2037796Z               "line": 31
2026-06-18T12:03:29.2038214Z             },
2026-06-18T12:03:29.2038500Z             {
2026-06-18T12:03:29.2039077Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2039396Z               "line": 113
2026-06-18T12:03:29.2039683Z             },
2026-06-18T12:03:29.2039973Z             {
2026-06-18T12:03:29.2040444Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2040752Z               "line": 138
2026-06-18T12:03:29.2041139Z             }
2026-06-18T12:03:29.2041420Z           ]
2026-06-18T12:03:29.2041711Z         },
2026-06-18T12:03:29.2041997Z         "int": {
2026-06-18T12:03:29.2042321Z           "complete": false,
2026-06-18T12:03:29.2042621Z           "evidence": []
2026-06-18T12:03:29.2042912Z         },
2026-06-18T12:03:29.2043202Z         "unit": {
2026-06-18T12:03:29.2043509Z           "complete": true,
2026-06-18T12:03:29.2043815Z           "evidence": [
2026-06-18T12:03:29.2044097Z             {
2026-06-18T12:03:29.2044534Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2044840Z               "line": 261
2026-06-18T12:03:29.2045126Z             },
2026-06-18T12:03:29.2045407Z             {
2026-06-18T12:03:29.2045839Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2046142Z               "line": 276
2026-06-18T12:03:29.2046419Z             },
2026-06-18T12:03:29.2046710Z             {
2026-06-18T12:03:29.2047150Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2047454Z               "line": 293
2026-06-18T12:03:29.2047740Z             },
2026-06-18T12:03:29.2048021Z             {
2026-06-18T12:03:29.2048462Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2048764Z               "line": 310
2026-06-18T12:03:29.2049118Z             },
2026-06-18T12:03:29.2049409Z             {
2026-06-18T12:03:29.2049838Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2050148Z               "line": 327
2026-06-18T12:03:29.2050429Z             },
2026-06-18T12:03:29.2050716Z             {
2026-06-18T12:03:29.2051160Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.2051456Z               "line": 366
2026-06-18T12:03:29.2051742Z             },
2026-06-18T12:03:29.2052019Z             {
2026-06-18T12:03:29.2052490Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2052790Z               "line": 179
2026-06-18T12:03:29.2053081Z             },
2026-06-18T12:03:29.2053377Z             {
2026-06-18T12:03:29.2053852Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2054146Z               "line": 194
2026-06-18T12:03:29.2054422Z             },
2026-06-18T12:03:29.2054709Z             {
2026-06-18T12:03:29.2055167Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2055467Z               "line": 204
2026-06-18T12:03:29.2055753Z             },
2026-06-18T12:03:29.2056039Z             {
2026-06-18T12:03:29.2056524Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2056823Z               "line": 259
2026-06-18T12:03:29.2057099Z             },
2026-06-18T12:03:29.2057385Z             {
2026-06-18T12:03:29.2057857Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2058148Z               "line": 269
2026-06-18T12:03:29.2058440Z             },
2026-06-18T12:03:29.2058722Z             {
2026-06-18T12:03:29.2059262Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.2059572Z               "line": 283
2026-06-18T12:03:29.2059863Z             }
2026-06-18T12:03:29.2060145Z           ]
2026-06-18T12:03:29.2060426Z         }
2026-06-18T12:03:29.2060703Z       }
2026-06-18T12:03:29.2060985Z     },
2026-06-18T12:03:29.2061262Z     {
2026-06-18T12:03:29.2061631Z       "id": "REQ-HAZARD-PARENT-PID-PREFER",
2026-06-18T12:03:29.2062245Z       "title": "Prefer stable parent PID / broker handle over ephemeral PID (2.1)",
2026-06-18T12:03:29.2062683Z       "requiredStages": [],
2026-06-18T12:03:29.2062974Z       "stages": {
2026-06-18T12:03:29.2063260Z         "doc": {
2026-06-18T12:03:29.2063570Z           "complete": false,
2026-06-18T12:03:29.2063871Z           "evidence": []
2026-06-18T12:03:29.2064158Z         },
2026-06-18T12:03:29.2064446Z         "impl": {
2026-06-18T12:03:29.2064763Z           "complete": false,
2026-06-18T12:03:29.2065160Z           "evidence": []
2026-06-18T12:03:29.2065432Z         },
2026-06-18T12:03:29.2065722Z         "int": {
2026-06-18T12:03:29.2066032Z           "complete": false,
2026-06-18T12:03:29.2066337Z           "evidence": []
2026-06-18T12:03:29.2066618Z         },
2026-06-18T12:03:29.2066918Z         "unit": {
2026-06-18T12:03:29.2067225Z           "complete": false,
2026-06-18T12:03:29.2067516Z           "evidence": []
2026-06-18T12:03:29.2067808Z         }
2026-06-18T12:03:29.2068083Z       }
2026-06-18T12:03:29.2068370Z     },
2026-06-18T12:03:29.2068657Z     {
2026-06-18T12:03:29.2069119Z       "id": "REQ-HAZARD-PSYCHE-OUTBOUND-PROXY",
2026-06-18T12:03:29.2071546Z       "title": "Psyche outbound captured + sanitized: the live-Psyche turn driver captures stdout (never Stdio::null), and the daemon strips/re-stamps Psyche-supplied from=/target and constrains routing (reply→__REPLY_TO__ sender, notify→own user/subnet) (7.3)",
2026-06-18T12:03:29.2071870Z       "requiredStages": [
2026-06-18T12:03:29.2072158Z         "impl",
2026-06-18T12:03:29.2072447Z         "unit"
2026-06-18T12:03:29.2072728Z       ],
2026-06-18T12:03:29.2073023Z       "stages": {
2026-06-18T12:03:29.2073305Z         "doc": {
2026-06-18T12:03:29.2073619Z           "complete": false,
2026-06-18T12:03:29.2073915Z           "evidence": []
2026-06-18T12:03:29.2074196Z         },
2026-06-18T12:03:29.2074487Z         "impl": {
2026-06-18T12:03:29.2074798Z           "complete": true,
2026-06-18T12:03:29.2075091Z           "evidence": [
2026-06-18T12:03:29.2075396Z             {
2026-06-18T12:03:29.2075810Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2076111Z               "line": 26
2026-06-18T12:03:29.2076392Z             },
2026-06-18T12:03:29.2076678Z             {
2026-06-18T12:03:29.2077092Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2077402Z               "line": 95
2026-06-18T12:03:29.2077691Z             },
2026-06-18T12:03:29.2077982Z             {
2026-06-18T12:03:29.2078391Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2078687Z               "line": 166
2026-06-18T12:03:29.2079040Z             },
2026-06-18T12:03:29.2079316Z             {
2026-06-18T12:03:29.2079731Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2080027Z               "line": 19
2026-06-18T12:03:29.2080316Z             },
2026-06-18T12:03:29.2080584Z             {
2026-06-18T12:03:29.2080988Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2081293Z               "line": 50
2026-06-18T12:03:29.2081580Z             },
2026-06-18T12:03:29.2081866Z             {
2026-06-18T12:03:29.2082238Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T12:03:29.2082547Z               "line": 18
2026-06-18T12:03:29.2082831Z             },
2026-06-18T12:03:29.2083118Z             {
2026-06-18T12:03:29.2083489Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T12:03:29.2083794Z               "line": 71
2026-06-18T12:03:29.2084080Z             },
2026-06-18T12:03:29.2084362Z             {
2026-06-18T12:03:29.2084738Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.2085038Z               "line": 87
2026-06-18T12:03:29.2085321Z             }
2026-06-18T12:03:29.2085610Z           ]
2026-06-18T12:03:29.2085893Z         },
2026-06-18T12:03:29.2086184Z         "int": {
2026-06-18T12:03:29.2086499Z           "complete": false,
2026-06-18T12:03:29.2086804Z           "evidence": []
2026-06-18T12:03:29.2087210Z         },
2026-06-18T12:03:29.2087501Z         "unit": {
2026-06-18T12:03:29.2087797Z           "complete": true,
2026-06-18T12:03:29.2088090Z           "evidence": [
2026-06-18T12:03:29.2088378Z             {
2026-06-18T12:03:29.2088785Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2089161Z               "line": 289
2026-06-18T12:03:29.2089443Z             },
2026-06-18T12:03:29.2089724Z             {
2026-06-18T12:03:29.2090234Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2090534Z               "line": 314
2026-06-18T12:03:29.2090820Z             },
2026-06-18T12:03:29.2091092Z             {
2026-06-18T12:03:29.2091497Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2091798Z               "line": 350
2026-06-18T12:03:29.2092088Z             },
2026-06-18T12:03:29.2092379Z             {
2026-06-18T12:03:29.2092783Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2093093Z               "line": 418
2026-06-18T12:03:29.2093373Z             },
2026-06-18T12:03:29.2093658Z             {
2026-06-18T12:03:29.2094054Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2094355Z               "line": 429
2026-06-18T12:03:29.2094635Z             },
2026-06-18T12:03:29.2094913Z             {
2026-06-18T12:03:29.2095321Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2095626Z               "line": 460
2026-06-18T12:03:29.2095918Z             },
2026-06-18T12:03:29.2096194Z             {
2026-06-18T12:03:29.2096601Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.2096907Z               "line": 471
2026-06-18T12:03:29.2097183Z             },
2026-06-18T12:03:29.2097465Z             {
2026-06-18T12:03:29.2097850Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2098151Z               "line": 77
2026-06-18T12:03:29.2098438Z             },
2026-06-18T12:03:29.2098717Z             {
2026-06-18T12:03:29.2099201Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2099511Z               "line": 97
2026-06-18T12:03:29.2099797Z             },
2026-06-18T12:03:29.2100083Z             {
2026-06-18T12:03:29.2100479Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2100784Z               "line": 112
2026-06-18T12:03:29.2101070Z             },
2026-06-18T12:03:29.2101352Z             {
2026-06-18T12:03:29.2101752Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2102066Z               "line": 123
2026-06-18T12:03:29.2102348Z             },
2026-06-18T12:03:29.2102634Z             {
2026-06-18T12:03:29.2103025Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2103320Z               "line": 130
2026-06-18T12:03:29.2103611Z             },
2026-06-18T12:03:29.2103896Z             {
2026-06-18T12:03:29.2104295Z               "path": "crates/spt-live/src/outbound.rs",
2026-06-18T12:03:29.2104600Z               "line": 145
2026-06-18T12:03:29.2104885Z             },
2026-06-18T12:03:29.2105182Z             {
2026-06-18T12:03:29.2105548Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T12:03:29.2105858Z               "line": 115
2026-06-18T12:03:29.2106145Z             },
2026-06-18T12:03:29.2106441Z             {
2026-06-18T12:03:29.2106810Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T12:03:29.2107124Z               "line": 130
2026-06-18T12:03:29.2107401Z             },
2026-06-18T12:03:29.2107682Z             {
2026-06-18T12:03:29.2108072Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.2108378Z               "line": 428
2026-06-18T12:03:29.2108665Z             }
2026-06-18T12:03:29.2109022Z           ]
2026-06-18T12:03:29.2109311Z         }
2026-06-18T12:03:29.2109595Z       }
2026-06-18T12:03:29.2109871Z     },
2026-06-18T12:03:29.2110152Z     {
2026-06-18T12:03:29.2110511Z       "id": "REQ-HAZARD-PUMP-IPC-DEADLINE",
2026-06-18T12:03:29.2113142Z       "title": "The single-threaded peer pump's brain-IPC reads are deadline-bounded (PUMP_PEER_IO_TIMEOUT, total-wait per call); a TimedOut read POISONS the client and escalates to a SUPERVISED RESTART, never a per-peer retry — a black-holed peer must never wedge the whole pump",
2026-06-18T12:03:29.2113466Z       "requiredStages": [
2026-06-18T12:03:29.2113743Z         "doc",
2026-06-18T12:03:29.2114029Z         "impl",
2026-06-18T12:03:29.2114427Z         "unit"
2026-06-18T12:03:29.2114716Z       ],
2026-06-18T12:03:29.2115002Z       "stages": {
2026-06-18T12:03:29.2115283Z         "doc": {
2026-06-18T12:03:29.2115603Z           "complete": true,
2026-06-18T12:03:29.2115903Z           "evidence": [
2026-06-18T12:03:29.2116189Z             {
2026-06-18T12:03:29.2116547Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2116852Z               "line": 374
2026-06-18T12:03:29.2117132Z             }
2026-06-18T12:03:29.2117426Z           ]
2026-06-18T12:03:29.2117736Z         },
2026-06-18T12:03:29.2118018Z         "impl": {
2026-06-18T12:03:29.2118332Z           "complete": true,
2026-06-18T12:03:29.2118633Z           "evidence": [
2026-06-18T12:03:29.2118910Z             {
2026-06-18T12:03:29.2119357Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2119661Z               "line": 200
2026-06-18T12:03:29.2119950Z             },
2026-06-18T12:03:29.2120227Z             {
2026-06-18T12:03:29.2120617Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2120918Z               "line": 304
2026-06-18T12:03:29.2121203Z             },
2026-06-18T12:03:29.2121486Z             {
2026-06-18T12:03:29.2121875Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2122181Z               "line": 516
2026-06-18T12:03:29.2122454Z             },
2026-06-18T12:03:29.2122743Z             {
2026-06-18T12:03:29.2123120Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2123415Z               "line": 531
2026-06-18T12:03:29.2123688Z             },
2026-06-18T12:03:29.2123974Z             {
2026-06-18T12:03:29.2124360Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2124661Z               "line": 1158
2026-06-18T12:03:29.2124940Z             },
2026-06-18T12:03:29.2125224Z             {
2026-06-18T12:03:29.2125630Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.2125935Z               "line": 443
2026-06-18T12:03:29.2126226Z             },
2026-06-18T12:03:29.2126511Z             {
2026-06-18T12:03:29.2126917Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.2127218Z               "line": 590
2026-06-18T12:03:29.2127505Z             },
2026-06-18T12:03:29.2127783Z             {
2026-06-18T12:03:29.2128192Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.2128497Z               "line": 731
2026-06-18T12:03:29.2128779Z             }
2026-06-18T12:03:29.2129121Z           ]
2026-06-18T12:03:29.2129408Z         },
2026-06-18T12:03:29.2129698Z         "int": {
2026-06-18T12:03:29.2130018Z           "complete": false,
2026-06-18T12:03:29.2130312Z           "evidence": []
2026-06-18T12:03:29.2130600Z         },
2026-06-18T12:03:29.2130891Z         "unit": {
2026-06-18T12:03:29.2131192Z           "complete": true,
2026-06-18T12:03:29.2131502Z           "evidence": [
2026-06-18T12:03:29.2131787Z             {
2026-06-18T12:03:29.2132193Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.2132507Z               "line": 1155
2026-06-18T12:03:29.2132804Z             },
2026-06-18T12:03:29.2133093Z             {
2026-06-18T12:03:29.2133536Z               "path": "crates/spt-daemon/tests/pumpdeadline.rs",
2026-06-18T12:03:29.2133841Z               "line": 30
2026-06-18T12:03:29.2134118Z             }
2026-06-18T12:03:29.2134404Z           ]
2026-06-18T12:03:29.2134686Z         }
2026-06-18T12:03:29.2134967Z       }
2026-06-18T12:03:29.2135249Z     },
2026-06-18T12:03:29.2135660Z     {
2026-06-18T12:03:29.2136032Z       "id": "REQ-HAZARD-RC-ATTACH-FAILFAST",
2026-06-18T12:03:29.2145762Z       "title": "B1: `spt rc <id>` to a DEAD or non-streaming session fails fast with a clear message, never an INFINITE blank screen. Today rc.rs run_attach (209-231) + pump spawns PUMP_IPC_READER and blocks: the poll times out each slice but the stream never produces output, so the operator sees a permanent blank (operator: fresh wall-f attached, closed tab, then `spt rc wall-f` HUNG — the broker still resolved a session for it). FIX: (a) once B2 lands, gate attach on is_online/status — an offline endpoint yields a clean 'endpoint offline, start it' not an attach; (b) fail-fast — if the attach-open ack / first output does not arrive within a bound, surface a clear message, never an infinite blank; (c) the broker EOFs the attach stream when the session's child is dead, so rc's existing PumpEnd::BrokerGone graceful path (REQ-HAZARD-RC-EOF) catches it. PIN the exact sub-mechanism with a repro test FIRST (dead-session-lingers-in-broker vs reaped-but-rc-waits vs alive-resting-no-wake — the wall-f Windows tab-close: child alive-silent vs dead-not-reaped). (v0.12.0)",
2026-06-18T12:03:29.2146239Z       "requiredStages": [
2026-06-18T12:03:29.2146525Z         "impl",
2026-06-18T12:03:29.2146817Z         "unit",
2026-06-18T12:03:29.2147084Z         "int"
2026-06-18T12:03:29.2147356Z       ],
2026-06-18T12:03:29.2147642Z       "stages": {
2026-06-18T12:03:29.2147957Z         "doc": {
2026-06-18T12:03:29.2148272Z           "complete": false,
2026-06-18T12:03:29.2148572Z           "evidence": []
2026-06-18T12:03:29.2148851Z         },
2026-06-18T12:03:29.2149196Z         "impl": {
2026-06-18T12:03:29.2149511Z           "complete": true,
2026-06-18T12:03:29.2149807Z           "evidence": [
2026-06-18T12:03:29.2150083Z             {
2026-06-18T12:03:29.2150437Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.2150737Z               "line": 198
2026-06-18T12:03:29.2151023Z             },
2026-06-18T12:03:29.2151328Z             {
2026-06-18T12:03:29.2151688Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.2151983Z               "line": 362
2026-06-18T12:03:29.2152260Z             }
2026-06-18T12:03:29.2152537Z           ]
2026-06-18T12:03:29.2152813Z         },
2026-06-18T12:03:29.2153100Z         "int": {
2026-06-18T12:03:29.2153400Z           "complete": true,
2026-06-18T12:03:29.2153705Z           "evidence": [
2026-06-18T12:03:29.2153991Z             {
2026-06-18T12:03:29.2154400Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T12:03:29.2154696Z               "line": 400
2026-06-18T12:03:29.2154981Z             }
2026-06-18T12:03:29.2155262Z           ]
2026-06-18T12:03:29.2155548Z         },
2026-06-18T12:03:29.2155840Z         "unit": {
2026-06-18T12:03:29.2156149Z           "complete": true,
2026-06-18T12:03:29.2156449Z           "evidence": [
2026-06-18T12:03:29.2156739Z             {
2026-06-18T12:03:29.2157081Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.2157391Z               "line": 538
2026-06-18T12:03:29.2157677Z             },
2026-06-18T12:03:29.2157968Z             {
2026-06-18T12:03:29.2158316Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.2158608Z               "line": 557
2026-06-18T12:03:29.2158889Z             }
2026-06-18T12:03:29.2159247Z           ]
2026-06-18T12:03:29.2159535Z         }
2026-06-18T12:03:29.2159810Z       }
2026-06-18T12:03:29.2160105Z     },
2026-06-18T12:03:29.2160386Z     {
2026-06-18T12:03:29.2160715Z       "id": "REQ-HAZARD-RC-EOF",
2026-06-18T12:03:29.2172946Z       "title": "A severed broker stream during a live rc session surfaces GRACEFULLY, never as a raw io error that crashes the PTY. The rc read-loop (rc.rs:352-362) continues only on WouldBlock/TimedOut; ANY other read_event_until error — including UnexpectedEof 'failed to fill whole buffer' — returns Err → RC_FAIL → the PTY 'crashes' from the user's view. Confirmed trigger: a deliberate `spt daemon stop` (broker bounce) severs an active rc (perri stopped the daemon to release owlery watch handles). Same severed-broker-stream EOF class as the v0.9.1 seed fix (seed_fail_message) and the listener-death case — spt-core must classify a broker-gone EOF and (a) surface a CLEAR actionable message ('daemon stopped/restarted — re-run / reconnect'), never the raw buffer error, and ideally (b) AUTO-REATTACH to the same session on the fresh broker (the broker is the daemon-lifetime anchor; it returns on the next `spt api` call). FOLD two side-observations: (1) `spt daemon stop` SILENTLY drops active rc/live sessions — warn ('N active session(s) will drop') or graceful-detach on stop; (2) the daemon holds owlery WATCH HANDLES on perch dirs so a torn-down perch dir stays 'Device busy' until a full daemon stop releases them (perri's rt-* cleanup) — a torn-down perch's handle should release without a daemon stop. doyle Finding C, root-caused. (post-v0.10.0)",
2026-06-18T12:03:29.2173728Z       "requiredStages": [
2026-06-18T12:03:29.2174043Z         "impl",
2026-06-18T12:03:29.2174338Z         "unit"
2026-06-18T12:03:29.2174629Z       ],
2026-06-18T12:03:29.2174921Z       "stages": {
2026-06-18T12:03:29.2175203Z         "doc": {
2026-06-18T12:03:29.2175520Z           "complete": false,
2026-06-18T12:03:29.2175835Z           "evidence": []
2026-06-18T12:03:29.2176121Z         },
2026-06-18T12:03:29.2176412Z         "impl": {
2026-06-18T12:03:29.2176721Z           "complete": true,
2026-06-18T12:03:29.2177051Z           "evidence": [
2026-06-18T12:03:29.2177341Z             {
2026-06-18T12:03:29.2177698Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.2178005Z               "line": 385
2026-06-18T12:03:29.2178291Z             }
2026-06-18T12:03:29.2178582Z           ]
2026-06-18T12:03:29.2178878Z         },
2026-06-18T12:03:29.2179249Z         "int": {
2026-06-18T12:03:29.2179569Z           "complete": false,
2026-06-18T12:03:29.2179875Z           "evidence": []
2026-06-18T12:03:29.2180156Z         },
2026-06-18T12:03:29.2180447Z         "unit": {
2026-06-18T12:03:29.2180763Z           "complete": true,
2026-06-18T12:03:29.2181069Z           "evidence": [
2026-06-18T12:03:29.2181350Z             {
2026-06-18T12:03:29.2181703Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.2182007Z               "line": 573
2026-06-18T12:03:29.2182299Z             }
2026-06-18T12:03:29.2182576Z           ]
2026-06-18T12:03:29.2182853Z         }
2026-06-18T12:03:29.2183136Z       }
2026-06-18T12:03:29.2183420Z     },
2026-06-18T12:03:29.2183696Z     {
2026-06-18T12:03:29.2184073Z       "id": "REQ-HAZARD-REGISTRY-CONCURRENT",
2026-06-18T12:03:29.2184932Z       "title": "Concurrent SQLite openers (registry/spool) must not fail with 'database is locked' (4.7)",
2026-06-18T12:03:29.2185256Z       "requiredStages": [
2026-06-18T12:03:29.2185546Z         "impl",
2026-06-18T12:03:29.2185833Z         "unit"
2026-06-18T12:03:29.2186114Z       ],
2026-06-18T12:03:29.2186410Z       "stages": {
2026-06-18T12:03:29.2186696Z         "doc": {
2026-06-18T12:03:29.2187025Z           "complete": true,
2026-06-18T12:03:29.2187316Z           "evidence": [
2026-06-18T12:03:29.2187601Z             {
2026-06-18T12:03:29.2187964Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2188267Z               "line": 139
2026-06-18T12:03:29.2188551Z             }
2026-06-18T12:03:29.2188828Z           ]
2026-06-18T12:03:29.2189194Z         },
2026-06-18T12:03:29.2189481Z         "impl": {
2026-06-18T12:03:29.2189805Z           "complete": true,
2026-06-18T12:03:29.2190096Z           "evidence": [
2026-06-18T12:03:29.2190373Z             {
2026-06-18T12:03:29.2190745Z               "path": "crates/spt-store/src/db.rs",
2026-06-18T12:03:29.2191030Z               "line": 29
2026-06-18T12:03:29.2191314Z             },
2026-06-18T12:03:29.2191591Z             {
2026-06-18T12:03:29.2191972Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.2192268Z               "line": 101
2026-06-18T12:03:29.2192549Z             },
2026-06-18T12:03:29.2192954Z             {
2026-06-18T12:03:29.2193365Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2193658Z               "line": 30
2026-06-18T12:03:29.2193937Z             },
2026-06-18T12:03:29.2194224Z             {
2026-06-18T12:03:29.2194609Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.2194905Z               "line": 48
2026-06-18T12:03:29.2195192Z             }
2026-06-18T12:03:29.2195568Z           ]
2026-06-18T12:03:29.2195850Z         },
2026-06-18T12:03:29.2196130Z         "int": {
2026-06-18T12:03:29.2196445Z           "complete": false,
2026-06-18T12:03:29.2196741Z           "evidence": []
2026-06-18T12:03:29.2197017Z         },
2026-06-18T12:03:29.2197304Z         "unit": {
2026-06-18T12:03:29.2197604Z           "complete": true,
2026-06-18T12:03:29.2197900Z           "evidence": [
2026-06-18T12:03:29.2198181Z             {
2026-06-18T12:03:29.2198587Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2198895Z               "line": 162
2026-06-18T12:03:29.2199255Z             }
2026-06-18T12:03:29.2199556Z           ]
2026-06-18T12:03:29.2199823Z         }
2026-06-18T12:03:29.2200099Z       }
2026-06-18T12:03:29.2200370Z     },
2026-06-18T12:03:29.2200652Z     {
2026-06-18T12:03:29.2201023Z       "id": "REQ-HAZARD-REGISTRY-DIR-CREATE",
2026-06-18T12:03:29.2202189Z       "title": "SQLite store opens create their parent dir themselves — a fresh-home registry op must not SQLITE_CANTOPEN (4.9)",
2026-06-18T12:03:29.2202513Z       "requiredStages": [
2026-06-18T12:03:29.2202799Z         "doc",
2026-06-18T12:03:29.2206496Z         "impl",
2026-06-18T12:03:29.2206811Z         "unit"
2026-06-18T12:03:29.2207100Z       ],
2026-06-18T12:03:29.2207405Z       "stages": {
2026-06-18T12:03:29.2207682Z         "doc": {
2026-06-18T12:03:29.2207987Z           "complete": true,
2026-06-18T12:03:29.2208283Z           "evidence": [
2026-06-18T12:03:29.2208569Z             {
2026-06-18T12:03:29.2208921Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2209354Z               "line": 151
2026-06-18T12:03:29.2209639Z             }
2026-06-18T12:03:29.2209910Z           ]
2026-06-18T12:03:29.2210197Z         },
2026-06-18T12:03:29.2210478Z         "impl": {
2026-06-18T12:03:29.2210788Z           "complete": true,
2026-06-18T12:03:29.2211074Z           "evidence": [
2026-06-18T12:03:29.2211356Z             {
2026-06-18T12:03:29.2211765Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2212089Z               "line": 22
2026-06-18T12:03:29.2212374Z             }
2026-06-18T12:03:29.2212649Z           ]
2026-06-18T12:03:29.2212925Z         },
2026-06-18T12:03:29.2213201Z         "int": {
2026-06-18T12:03:29.2213506Z           "complete": false,
2026-06-18T12:03:29.2213812Z           "evidence": []
2026-06-18T12:03:29.2214084Z         },
2026-06-18T12:03:29.2214365Z         "unit": {
2026-06-18T12:03:29.2214670Z           "complete": true,
2026-06-18T12:03:29.2214968Z           "evidence": [
2026-06-18T12:03:29.2215245Z             {
2026-06-18T12:03:29.2215654Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2215959Z               "line": 298
2026-06-18T12:03:29.2216245Z             }
2026-06-18T12:03:29.2216532Z           ]
2026-06-18T12:03:29.2216809Z         }
2026-06-18T12:03:29.2217086Z       }
2026-06-18T12:03:29.2217357Z     },
2026-06-18T12:03:29.2217641Z     {
2026-06-18T12:03:29.2218022Z       "id": "REQ-HAZARD-REGISTRY-EPOCH-LEASE",
2026-06-18T12:03:29.2219458Z       "title": "Registry merge ordered by per-node monotonic epoch, never wall-clock — a stale Active can't clobber a newer Offline (4.8, red-team #8)",
2026-06-18T12:03:29.2219810Z       "requiredStages": [
2026-06-18T12:03:29.2220090Z         "impl",
2026-06-18T12:03:29.2220380Z         "unit"
2026-06-18T12:03:29.2220657Z       ],
2026-06-18T12:03:29.2220948Z       "stages": {
2026-06-18T12:03:29.2221234Z         "doc": {
2026-06-18T12:03:29.2221538Z           "complete": true,
2026-06-18T12:03:29.2221996Z           "evidence": [
2026-06-18T12:03:29.2222264Z             {
2026-06-18T12:03:29.2222622Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2222920Z               "line": 145
2026-06-18T12:03:29.2223204Z             }
2026-06-18T12:03:29.2223485Z           ]
2026-06-18T12:03:29.2223766Z         },
2026-06-18T12:03:29.2224043Z         "impl": {
2026-06-18T12:03:29.2224343Z           "complete": true,
2026-06-18T12:03:29.2224639Z           "evidence": [
2026-06-18T12:03:29.2225040Z             {
2026-06-18T12:03:29.2225472Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-18T12:03:29.2225780Z               "line": 160
2026-06-18T12:03:29.2226052Z             },
2026-06-18T12:03:29.2226333Z             {
2026-06-18T12:03:29.2226758Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2227059Z               "line": 200
2026-06-18T12:03:29.2227341Z             },
2026-06-18T12:03:29.2227631Z             {
2026-06-18T12:03:29.2228032Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2228330Z               "line": 298
2026-06-18T12:03:29.2228622Z             },
2026-06-18T12:03:29.2228893Z             {
2026-06-18T12:03:29.2229451Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T12:03:29.2229756Z               "line": 20
2026-06-18T12:03:29.2230037Z             }
2026-06-18T12:03:29.2230319Z           ]
2026-06-18T12:03:29.2230599Z         },
2026-06-18T12:03:29.2230902Z         "int": {
2026-06-18T12:03:29.2231207Z           "complete": false,
2026-06-18T12:03:29.2231508Z           "evidence": []
2026-06-18T12:03:29.2231789Z         },
2026-06-18T12:03:29.2232070Z         "unit": {
2026-06-18T12:03:29.2232370Z           "complete": true,
2026-06-18T12:03:29.2232675Z           "evidence": [
2026-06-18T12:03:29.2232957Z             {
2026-06-18T12:03:29.2233380Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2233682Z               "line": 937
2026-06-18T12:03:29.2233969Z             },
2026-06-18T12:03:29.2234250Z             {
2026-06-18T12:03:29.2234675Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-18T12:03:29.2234970Z               "line": 88
2026-06-18T12:03:29.2235257Z             },
2026-06-18T12:03:29.2235528Z             {
2026-06-18T12:03:29.2235927Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2236239Z               "line": 851
2026-06-18T12:03:29.2236526Z             },
2026-06-18T12:03:29.2236812Z             {
2026-06-18T12:03:29.2237208Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2237508Z               "line": 870
2026-06-18T12:03:29.2237785Z             },
2026-06-18T12:03:29.2238071Z             {
2026-06-18T12:03:29.2238487Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.2238780Z               "line": 279
2026-06-18T12:03:29.2239157Z             },
2026-06-18T12:03:29.2239424Z             {
2026-06-18T12:03:29.2239831Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T12:03:29.2240131Z               "line": 82
2026-06-18T12:03:29.2240417Z             },
2026-06-18T12:03:29.2240702Z             {
2026-06-18T12:03:29.2241083Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T12:03:29.2241380Z               "line": 99
2026-06-18T12:03:29.2241777Z             },
2026-06-18T12:03:29.2242049Z             {
2026-06-18T12:03:29.2242431Z               "path": "crates/spt-store/src/epoch.rs",
2026-06-18T12:03:29.2242807Z               "line": 119
2026-06-18T12:03:29.2243093Z             }
2026-06-18T12:03:29.2243375Z           ]
2026-06-18T12:03:29.2243652Z         }
2026-06-18T12:03:29.2243926Z       }
2026-06-18T12:03:29.2244205Z     },
2026-06-18T12:03:29.2244481Z     {
2026-06-18T12:03:29.2245007Z       "id": "REQ-HAZARD-REGISTRY-GHOST-ROWS",
2026-06-18T12:03:29.2251979Z       "title": "A dead node identity's registry rows must decay: only the per-(endpoint,node) epoch lease supersedes rows, so without eviction a vanished node's rows are immortal and poison bare-id resolution with phantom AcrossNodes ambiguity — evict rows whose author node has not been heard (admitted inbound feed) within the eviction window; own rows never decay; a revived node re-inserts from its durable epoch within one pump cadence (4.10)",
2026-06-18T12:03:29.2252681Z       "requiredStages": [
2026-06-18T12:03:29.2253081Z         "doc",
2026-06-18T12:03:29.2253476Z         "impl",
2026-06-18T12:03:29.2254101Z         "unit"
2026-06-18T12:03:29.2254438Z       ],
2026-06-18T12:03:29.2254736Z       "stages": {
2026-06-18T12:03:29.2255033Z         "doc": {
2026-06-18T12:03:29.2255338Z           "complete": true,
2026-06-18T12:03:29.2255643Z           "evidence": [
2026-06-18T12:03:29.2255929Z             {
2026-06-18T12:03:29.2256290Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2256601Z               "line": 157
2026-06-18T12:03:29.2256878Z             }
2026-06-18T12:03:29.2257167Z           ]
2026-06-18T12:03:29.2257456Z         },
2026-06-18T12:03:29.2257747Z         "impl": {
2026-06-18T12:03:29.2258053Z           "complete": true,
2026-06-18T12:03:29.2258358Z           "evidence": [
2026-06-18T12:03:29.2258634Z             {
2026-06-18T12:03:29.2259153Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.2259463Z               "line": 137
2026-06-18T12:03:29.2259755Z             },
2026-06-18T12:03:29.2260035Z             {
2026-06-18T12:03:29.2260482Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2260788Z               "line": 564
2026-06-18T12:03:29.2261079Z             },
2026-06-18T12:03:29.2261360Z             {
2026-06-18T12:03:29.2261794Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2262084Z               "line": 571
2026-06-18T12:03:29.2262372Z             },
2026-06-18T12:03:29.2262664Z             {
2026-06-18T12:03:29.2263087Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2263397Z               "line": 227
2026-06-18T12:03:29.2263674Z             }
2026-06-18T12:03:29.2263965Z           ]
2026-06-18T12:03:29.2264246Z         },
2026-06-18T12:03:29.2264542Z         "int": {
2026-06-18T12:03:29.2264843Z           "complete": false,
2026-06-18T12:03:29.2265146Z           "evidence": []
2026-06-18T12:03:29.2265436Z         },
2026-06-18T12:03:29.2265721Z         "unit": {
2026-06-18T12:03:29.2266041Z           "complete": true,
2026-06-18T12:03:29.2266346Z           "evidence": [
2026-06-18T12:03:29.2266637Z             {
2026-06-18T12:03:29.2267076Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2267377Z               "line": 1622
2026-06-18T12:03:29.2267656Z             },
2026-06-18T12:03:29.2267935Z             {
2026-06-18T12:03:29.2268365Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2268665Z               "line": 1680
2026-06-18T12:03:29.2269037Z             },
2026-06-18T12:03:29.2269323Z             {
2026-06-18T12:03:29.2269727Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2270037Z               "line": 883
2026-06-18T12:03:29.2270306Z             }
2026-06-18T12:03:29.2270596Z           ]
2026-06-18T12:03:29.2270871Z         }
2026-06-18T12:03:29.2271158Z       }
2026-06-18T12:03:29.2271439Z     },
2026-06-18T12:03:29.2271715Z     {
2026-06-18T12:03:29.2272097Z       "id": "REQ-HAZARD-REGISTRY-STALE-CLEAN",
2026-06-18T12:03:29.2272720Z       "title": "Stale registry entries degrade to fallback, never hard-fail (4.3)",
2026-06-18T12:03:29.2273051Z       "requiredStages": [
2026-06-18T12:03:29.2273333Z         "impl",
2026-06-18T12:03:29.2273614Z         "unit"
2026-06-18T12:03:29.2273896Z       ],
2026-06-18T12:03:29.2274182Z       "stages": {
2026-06-18T12:03:29.2274472Z         "doc": {
2026-06-18T12:03:29.2274783Z           "complete": false,
2026-06-18T12:03:29.2275084Z           "evidence": []
2026-06-18T12:03:29.2275366Z         },
2026-06-18T12:03:29.2275772Z         "impl": {
2026-06-18T12:03:29.2276082Z           "complete": true,
2026-06-18T12:03:29.2276373Z           "evidence": [
2026-06-18T12:03:29.2276663Z             {
2026-06-18T12:03:29.2277039Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.2277340Z               "line": 15
2026-06-18T12:03:29.2277622Z             },
2026-06-18T12:03:29.2277914Z             {
2026-06-18T12:03:29.2278315Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2278715Z               "line": 55
2026-06-18T12:03:29.2279072Z             },
2026-06-18T12:03:29.2279354Z             {
2026-06-18T12:03:29.2279783Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2280083Z               "line": 66
2026-06-18T12:03:29.2280369Z             },
2026-06-18T12:03:29.2280651Z             {
2026-06-18T12:03:29.2281045Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2281345Z               "line": 115
2026-06-18T12:03:29.2281631Z             },
2026-06-18T12:03:29.2281918Z             {
2026-06-18T12:03:29.2282294Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2282599Z               "line": 138
2026-06-18T12:03:29.2282886Z             }
2026-06-18T12:03:29.2283162Z           ]
2026-06-18T12:03:29.2283447Z         },
2026-06-18T12:03:29.2283732Z         "int": {
2026-06-18T12:03:29.2284046Z           "complete": false,
2026-06-18T12:03:29.2284352Z           "evidence": []
2026-06-18T12:03:29.2284633Z         },
2026-06-18T12:03:29.2284929Z         "unit": {
2026-06-18T12:03:29.2285224Z           "complete": true,
2026-06-18T12:03:29.2285529Z           "evidence": [
2026-06-18T12:03:29.2285815Z             {
2026-06-18T12:03:29.2286191Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.2286488Z               "line": 363
2026-06-18T12:03:29.2286774Z             },
2026-06-18T12:03:29.2287051Z             {
2026-06-18T12:03:29.2287418Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.2287728Z               "line": 369
2026-06-18T12:03:29.2288009Z             },
2026-06-18T12:03:29.2288281Z             {
2026-06-18T12:03:29.2288662Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.2289045Z               "line": 383
2026-06-18T12:03:29.2289327Z             },
2026-06-18T12:03:29.2289618Z             {
2026-06-18T12:03:29.2290009Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.2290319Z               "line": 392
2026-06-18T12:03:29.2290600Z             },
2026-06-18T12:03:29.2290877Z             {
2026-06-18T12:03:29.2291283Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2291595Z               "line": 195
2026-06-18T12:03:29.2291872Z             },
2026-06-18T12:03:29.2292154Z             {
2026-06-18T12:03:29.2292554Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2292859Z               "line": 208
2026-06-18T12:03:29.2293136Z             },
2026-06-18T12:03:29.2293422Z             {
2026-06-18T12:03:29.2293807Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2294110Z               "line": 271
2026-06-18T12:03:29.2294391Z             },
2026-06-18T12:03:29.2294669Z             {
2026-06-18T12:03:29.2295068Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2295373Z               "line": 290
2026-06-18T12:03:29.2295656Z             },
2026-06-18T12:03:29.2295950Z             {
2026-06-18T12:03:29.2296346Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.2296655Z               "line": 319
2026-06-18T12:03:29.2296939Z             }
2026-06-18T12:03:29.2297231Z           ]
2026-06-18T12:03:29.2297511Z         }
2026-06-18T12:03:29.2297789Z       }
2026-06-18T12:03:29.2298075Z     },
2026-06-18T12:03:29.2298341Z     {
2026-06-18T12:03:29.2298704Z       "id": "REQ-HAZARD-RESTART-IDEMPOTENT",
2026-06-18T12:03:29.2299673Z       "title": "Idempotent/exactly-once delivery across brain restart at every broker boundary (codex #14)",
2026-06-18T12:03:29.2300112Z       "requiredStages": [
2026-06-18T12:03:29.2300393Z         "impl",
2026-06-18T12:03:29.2300679Z         "unit",
2026-06-18T12:03:29.2300957Z         "int"
2026-06-18T12:03:29.2301233Z       ],
2026-06-18T12:03:29.2301523Z       "stages": {
2026-06-18T12:03:29.2301809Z         "doc": {
2026-06-18T12:03:29.2302122Z           "complete": false,
2026-06-18T12:03:29.2302528Z           "evidence": []
2026-06-18T12:03:29.2302819Z         },
2026-06-18T12:03:29.2303229Z         "impl": {
2026-06-18T12:03:29.2303544Z           "complete": true,
2026-06-18T12:03:29.2303840Z           "evidence": [
2026-06-18T12:03:29.2304121Z             {
2026-06-18T12:03:29.2304505Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2304799Z               "line": 448
2026-06-18T12:03:29.2305080Z             },
2026-06-18T12:03:29.2305361Z             {
2026-06-18T12:03:29.2305744Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2306054Z               "line": 868
2026-06-18T12:03:29.2306339Z             },
2026-06-18T12:03:29.2306625Z             {
2026-06-18T12:03:29.2307013Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2307316Z               "line": 913
2026-06-18T12:03:29.2307594Z             },
2026-06-18T12:03:29.2307871Z             {
2026-06-18T12:03:29.2308252Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.2308563Z               "line": 938
2026-06-18T12:03:29.2308858Z             },
2026-06-18T12:03:29.2309308Z             {
2026-06-18T12:03:29.2309720Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.2310033Z               "line": 1006
2026-06-18T12:03:29.2310315Z             },
2026-06-18T12:03:29.2310605Z             {
2026-06-18T12:03:29.2310992Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.2311282Z               "line": 1188
2026-06-18T12:03:29.2311573Z             },
2026-06-18T12:03:29.2311846Z             {
2026-06-18T12:03:29.2312236Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.2312537Z               "line": 1319
2026-06-18T12:03:29.2312826Z             },
2026-06-18T12:03:29.2313098Z             {
2026-06-18T12:03:29.2313494Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.2313803Z               "line": 1367
2026-06-18T12:03:29.2314086Z             },
2026-06-18T12:03:29.2314377Z             {
2026-06-18T12:03:29.2314772Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T12:03:29.2315075Z               "line": 46
2026-06-18T12:03:29.2315360Z             },
2026-06-18T12:03:29.2315635Z             {
2026-06-18T12:03:29.2316032Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T12:03:29.2316332Z               "line": 167
2026-06-18T12:03:29.2316633Z             },
2026-06-18T12:03:29.2316914Z             {
2026-06-18T12:03:29.2317282Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.2317597Z               "line": 132
2026-06-18T12:03:29.2317876Z             },
2026-06-18T12:03:29.2318169Z             {
2026-06-18T12:03:29.2318537Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.2318842Z               "line": 137
2026-06-18T12:03:29.2319195Z             },
2026-06-18T12:03:29.2319486Z             {
2026-06-18T12:03:29.2319863Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.2320159Z               "line": 183
2026-06-18T12:03:29.2320438Z             }
2026-06-18T12:03:29.2320716Z           ]
2026-06-18T12:03:29.2320998Z         },
2026-06-18T12:03:29.2321284Z         "int": {
2026-06-18T12:03:29.2321585Z           "complete": true,
2026-06-18T12:03:29.2321895Z           "evidence": [
2026-06-18T12:03:29.2322171Z             {
2026-06-18T12:03:29.2322595Z               "path": "crates/spt-daemon/tests/idempotent.rs",
2026-06-18T12:03:29.2322882Z               "line": 27
2026-06-18T12:03:29.2323305Z             },
2026-06-18T12:03:29.2323581Z             {
2026-06-18T12:03:29.2324007Z               "path": "crates/spt-daemon/tests/netbroker.rs",
2026-06-18T12:03:29.2324302Z               "line": 148
2026-06-18T12:03:29.2324583Z             },
2026-06-18T12:03:29.2324864Z             {
2026-06-18T12:03:29.2325281Z               "path": "crates/spt-daemon/tests/netstream.rs",
2026-06-18T12:03:29.2325588Z               "line": 200
2026-06-18T12:03:29.2325968Z             }
2026-06-18T12:03:29.2326268Z           ]
2026-06-18T12:03:29.2326555Z         },
2026-06-18T12:03:29.2326845Z         "unit": {
2026-06-18T12:03:29.2327155Z           "complete": true,
2026-06-18T12:03:29.2327450Z           "evidence": [
2026-06-18T12:03:29.2327731Z             {
2026-06-18T12:03:29.2328123Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T12:03:29.2328421Z               "line": 313
2026-06-18T12:03:29.2328700Z             },
2026-06-18T12:03:29.2329063Z             {
2026-06-18T12:03:29.2329455Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T12:03:29.2329755Z               "line": 345
2026-06-18T12:03:29.2330041Z             },
2026-06-18T12:03:29.2330312Z             {
2026-06-18T12:03:29.2330705Z               "path": "crates/spt-daemon/src/effect.rs",
2026-06-18T12:03:29.2331007Z               "line": 366
2026-06-18T12:03:29.2331291Z             },
2026-06-18T12:03:29.2331567Z             {
2026-06-18T12:03:29.2331959Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.2332274Z               "line": 510
2026-06-18T12:03:29.2332555Z             },
2026-06-18T12:03:29.2332840Z             {
2026-06-18T12:03:29.2333248Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T12:03:29.2333543Z               "line": 289
2026-06-18T12:03:29.2333831Z             },
2026-06-18T12:03:29.2334108Z             {
2026-06-18T12:03:29.2334499Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-18T12:03:29.2334785Z               "line": 230
2026-06-18T12:03:29.2335071Z             },
2026-06-18T12:03:29.2335362Z             {
2026-06-18T12:03:29.2335729Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.2336038Z               "line": 526
2026-06-18T12:03:29.2336317Z             },
2026-06-18T12:03:29.2336594Z             {
2026-06-18T12:03:29.2336975Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.2337275Z               "line": 556
2026-06-18T12:03:29.2337567Z             }
2026-06-18T12:03:29.2337853Z           ]
2026-06-18T12:03:29.2338139Z         }
2026-06-18T12:03:29.2338412Z       }
2026-06-18T12:03:29.2338693Z     },
2026-06-18T12:03:29.2339054Z     {
2026-06-18T12:03:29.2339462Z       "id": "REQ-HAZARD-ROLLBACK-STATE-COMPAT",
2026-06-18T12:03:29.2344654Z       "title": "A brain must not irreversibly migrate durable state before update ready-promotion: the readiness-gated auto-rollback (ADR-0018 Q7) spawns the N-1 binary against durable state the new brain may have written, so every pre-ready write must stay N-1-readable (schema migrations gated behind ready-promotion, or written N-1-tolerant/additive). Else the first in-place schema migration silently bricks rollback (KNOWN-HAZARDS 6.8). Free now — a 2026-06-09 audit confirmed zero state-migration code exists; unmintable retroactively once a migration ships.",
2026-06-18T12:03:29.2344978Z       "requiredStages": [
2026-06-18T12:03:29.2345274Z         "doc",
2026-06-18T12:03:29.2345570Z         "impl",
2026-06-18T12:03:29.2345851Z         "unit"
2026-06-18T12:03:29.2346133Z       ],
2026-06-18T12:03:29.2346410Z       "stages": {
2026-06-18T12:03:29.2346699Z         "doc": {
2026-06-18T12:03:29.2347002Z           "complete": true,
2026-06-18T12:03:29.2347302Z           "evidence": [
2026-06-18T12:03:29.2347588Z             {
2026-06-18T12:03:29.2347941Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2348246Z               "line": 314
2026-06-18T12:03:29.2348513Z             }
2026-06-18T12:03:29.2348799Z           ]
2026-06-18T12:03:29.2349404Z         },
2026-06-18T12:03:29.2349740Z         "impl": {
2026-06-18T12:03:29.2350045Z           "complete": true,
2026-06-18T12:03:29.2350341Z           "evidence": [
2026-06-18T12:03:29.2350627Z             {
2026-06-18T12:03:29.2351065Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-18T12:03:29.2351366Z               "line": 33
2026-06-18T12:03:29.2351652Z             },
2026-06-18T12:03:29.2351933Z             {
2026-06-18T12:03:29.2352479Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-18T12:03:29.2352764Z               "line": 39
2026-06-18T12:03:29.2353045Z             }
2026-06-18T12:03:29.2353322Z           ]
2026-06-18T12:03:29.2353604Z         },
2026-06-18T12:03:29.2353880Z         "int": {
2026-06-18T12:03:29.2354204Z           "complete": false,
2026-06-18T12:03:29.2354500Z           "evidence": []
2026-06-18T12:03:29.2354768Z         },
2026-06-18T12:03:29.2355057Z         "unit": {
2026-06-18T12:03:29.2355372Z           "complete": true,
2026-06-18T12:03:29.2355668Z           "evidence": [
2026-06-18T12:03:29.2355948Z             {
2026-06-18T12:03:29.2356402Z               "path": "crates/spt-daemon/src/rollback_compat.rs",
2026-06-18T12:03:29.2356708Z               "line": 95
2026-06-18T12:03:29.2356989Z             }
2026-06-18T12:03:29.2357268Z           ]
2026-06-18T12:03:29.2357557Z         }
2026-06-18T12:03:29.2357838Z       }
2026-06-18T12:03:29.2358109Z     },
2026-06-18T12:03:29.2358396Z     {
2026-06-18T12:03:29.2358744Z       "id": "REQ-HAZARD-ROSTER-GHOST",
2026-06-18T12:03:29.2366418Z       "title": "A LOCAL subnet roster entry whose backing perch is erased does NOT keep advertising Active (no phantom perch-less endpoint). `api session-end <id> --erase` removes the perch (owlery dir gone) but the subnet roster (identity/registry/<subnet>.json) keeps the endpoint's instance row ACTIVE with no backing perch; `endpoint stop` says 'address unregistered' yet the line persists; no CLI verb forgets a roster entry, and a hand-edit is re-added by the single-writer daemon advertiser. FIX: daemon-side self-heal — the advertiser DROPS/forgets a LOCAL roster entry whose backing perch no longer exists (stops advertising it Active), and/or a `forget`/evict verb; verify whether the epoch lease eventually evicts it (slow-self-heal) vs a real leak and scope accordingly. doyle secondary finding (perri). (post-v0.10.0)",
2026-06-18T12:03:29.2366771Z       "requiredStages": [
2026-06-18T12:03:29.2367072Z         "impl",
2026-06-18T12:03:29.2367347Z         "unit"
2026-06-18T12:03:29.2367634Z       ],
2026-06-18T12:03:29.2367932Z       "stages": {
2026-06-18T12:03:29.2368227Z         "doc": {
2026-06-18T12:03:29.2368528Z           "complete": false,
2026-06-18T12:03:29.2368833Z           "evidence": []
2026-06-18T12:03:29.2369195Z         },
2026-06-18T12:03:29.2369491Z         "impl": {
2026-06-18T12:03:29.2369820Z           "complete": true,
2026-06-18T12:03:29.2370130Z           "evidence": [
2026-06-18T12:03:29.2370459Z             {
2026-06-18T12:03:29.2370912Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2371236Z               "line": 488
2026-06-18T12:03:29.2371532Z             }
2026-06-18T12:03:29.2371824Z           ]
2026-06-18T12:03:29.2372134Z         },
2026-06-18T12:03:29.2372429Z         "int": {
2026-06-18T12:03:29.2372743Z           "complete": false,
2026-06-18T12:03:29.2373049Z           "evidence": []
2026-06-18T12:03:29.2373343Z         },
2026-06-18T12:03:29.2373642Z         "unit": {
2026-06-18T12:03:29.2373943Z           "complete": true,
2026-06-18T12:03:29.2374243Z           "evidence": [
2026-06-18T12:03:29.2374529Z             {
2026-06-18T12:03:29.2374981Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2375291Z               "line": 1466
2026-06-18T12:03:29.2375578Z             }
2026-06-18T12:03:29.2375865Z           ]
2026-06-18T12:03:29.2376163Z         }
2026-06-18T12:03:29.2376449Z       }
2026-06-18T12:03:29.2376859Z     },
2026-06-18T12:03:29.2377141Z     {
2026-06-18T12:03:29.2377494Z       "id": "REQ-HAZARD-SELF-ELEVATE",
2026-06-18T12:03:29.2384188Z       "title": "Self-elevation (REQ-ELEVATE-1) re-runs the EXACT original invocation with the binary's ABSOLUTE exe path — never widening privilege scope, never adding/altering args, never via a PATH-resolved bare name, never via a shell-interpolated command string (argv-array only, no `sh -c`); the elevated child drops state back to the user (composes with the 5.7 de-elevation) and NEVER re-elevates (loop-safe: decide_elevation_path returns AlreadyElevated whenever the process is already Elevated, on every OS). The user's UAC/polkit/sudo prompt is the only consent gate — we never bypass it; the print-hint floor prints the absolute-path command too. The unprivileged parent never depends on (pipes/captures) the privileged child's stdout.",
2026-06-18T12:03:29.2384654Z       "requiredStages": [
2026-06-18T12:03:29.2384946Z         "unit"
2026-06-18T12:03:29.2385217Z       ],
2026-06-18T12:03:29.2385541Z       "stages": {
2026-06-18T12:03:29.2385828Z         "doc": {
2026-06-18T12:03:29.2386138Z           "complete": false,
2026-06-18T12:03:29.2386444Z           "evidence": []
2026-06-18T12:03:29.2386728Z         },
2026-06-18T12:03:29.2387024Z         "impl": {
2026-06-18T12:03:29.2387339Z           "complete": true,
2026-06-18T12:03:29.2387644Z           "evidence": [
2026-06-18T12:03:29.2387924Z             {
2026-06-18T12:03:29.2388293Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2388598Z               "line": 3378
2026-06-18T12:03:29.2388886Z             },
2026-06-18T12:03:29.2389228Z             {
2026-06-18T12:03:29.2389591Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2389906Z               "line": 3430
2026-06-18T12:03:29.2390187Z             },
2026-06-18T12:03:29.2390472Z             {
2026-06-18T12:03:29.2390821Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2391131Z               "line": 3475
2026-06-18T12:03:29.2391426Z             },
2026-06-18T12:03:29.2391711Z             {
2026-06-18T12:03:29.2392095Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2392390Z               "line": 92
2026-06-18T12:03:29.2392676Z             },
2026-06-18T12:03:29.2392953Z             {
2026-06-18T12:03:29.2393334Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2393640Z               "line": 148
2026-06-18T12:03:29.2393916Z             },
2026-06-18T12:03:29.2394221Z             {
2026-06-18T12:03:29.2394594Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2394886Z               "line": 192
2026-06-18T12:03:29.2395159Z             },
2026-06-18T12:03:29.2395444Z             {
2026-06-18T12:03:29.2395821Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2396121Z               "line": 200
2026-06-18T12:03:29.2396412Z             },
2026-06-18T12:03:29.2396699Z             {
2026-06-18T12:03:29.2397074Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2397389Z               "line": 211
2026-06-18T12:03:29.2397670Z             },
2026-06-18T12:03:29.2397961Z             {
2026-06-18T12:03:29.2398323Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2398614Z               "line": 265
2026-06-18T12:03:29.2398901Z             },
2026-06-18T12:03:29.2399277Z             {
2026-06-18T12:03:29.2399659Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2399964Z               "line": 279
2026-06-18T12:03:29.2400246Z             }
2026-06-18T12:03:29.2400532Z           ]
2026-06-18T12:03:29.2400819Z         },
2026-06-18T12:03:29.2401105Z         "int": {
2026-06-18T12:03:29.2401420Z           "complete": false,
2026-06-18T12:03:29.2401720Z           "evidence": []
2026-06-18T12:03:29.2402144Z         },
2026-06-18T12:03:29.2402546Z         "unit": {
2026-06-18T12:03:29.2403198Z           "complete": true,
2026-06-18T12:03:29.2403743Z           "evidence": [
2026-06-18T12:03:29.2404335Z             {
2026-06-18T12:03:29.2404819Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2405202Z               "line": 419
2026-06-18T12:03:29.2405541Z             },
2026-06-18T12:03:29.2405890Z             {
2026-06-18T12:03:29.2406361Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2406738Z               "line": 470
2026-06-18T12:03:29.2407105Z             },
2026-06-18T12:03:29.2407445Z             {
2026-06-18T12:03:29.2408038Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2408406Z               "line": 499
2026-06-18T12:03:29.2408764Z             },
2026-06-18T12:03:29.2409312Z             {
2026-06-18T12:03:29.2409856Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2410164Z               "line": 526
2026-06-18T12:03:29.2410449Z             }
2026-06-18T12:03:29.2410740Z           ]
2026-06-18T12:03:29.2411021Z         }
2026-06-18T12:03:29.2411307Z       }
2026-06-18T12:03:29.2411593Z     },
2026-06-18T12:03:29.2411869Z     {
2026-06-18T12:03:29.2412251Z       "id": "REQ-HAZARD-SINGLE-PATH-SOURCE",
2026-06-18T12:03:29.2412864Z       "title": "Single path/registry source of truth; no layout ambiguity (6.1)",
2026-06-18T12:03:29.2413186Z       "requiredStages": [
2026-06-18T12:03:29.2413482Z         "impl",
2026-06-18T12:03:29.2413768Z         "unit"
2026-06-18T12:03:29.2414041Z       ],
2026-06-18T12:03:29.2414336Z       "stages": {
2026-06-18T12:03:29.2414627Z         "doc": {
2026-06-18T12:03:29.2414937Z           "complete": false,
2026-06-18T12:03:29.2415247Z           "evidence": []
2026-06-18T12:03:29.2415541Z         },
2026-06-18T12:03:29.2415830Z         "impl": {
2026-06-18T12:03:29.2416135Z           "complete": true,
2026-06-18T12:03:29.2416445Z           "evidence": [
2026-06-18T12:03:29.2416726Z             {
2026-06-18T12:03:29.2417170Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2417476Z               "line": 62
2026-06-18T12:03:29.2417771Z             },
2026-06-18T12:03:29.2418053Z             {
2026-06-18T12:03:29.2418481Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2418786Z               "line": 71
2026-06-18T12:03:29.2419172Z             },
2026-06-18T12:03:29.2419462Z             {
2026-06-18T12:03:29.2419891Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2420192Z               "line": 80
2026-06-18T12:03:29.2420486Z             },
2026-06-18T12:03:29.2420761Z             {
2026-06-18T12:03:29.2421194Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2421499Z               "line": 88
2026-06-18T12:03:29.2421780Z             },
2026-06-18T12:03:29.2422072Z             {
2026-06-18T12:03:29.2422443Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2422753Z               "line": 33
2026-06-18T12:03:29.2423040Z             },
2026-06-18T12:03:29.2423325Z             {
2026-06-18T12:03:29.2423699Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2424009Z               "line": 65
2026-06-18T12:03:29.2424295Z             },
2026-06-18T12:03:29.2424577Z             {
2026-06-18T12:03:29.2424967Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2425273Z               "line": 74
2026-06-18T12:03:29.2425553Z             },
2026-06-18T12:03:29.2425840Z             {
2026-06-18T12:03:29.2426223Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2426533Z               "line": 93
2026-06-18T12:03:29.2426820Z             },
2026-06-18T12:03:29.2427105Z             {
2026-06-18T12:03:29.2427491Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2427797Z               "line": 102
2026-06-18T12:03:29.2428078Z             },
2026-06-18T12:03:29.2428360Z             {
2026-06-18T12:03:29.2428745Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2429135Z               "line": 111
2026-06-18T12:03:29.2429589Z             },
2026-06-18T12:03:29.2429874Z             {
2026-06-18T12:03:29.2430257Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2430553Z               "line": 122
2026-06-18T12:03:29.2430838Z             },
2026-06-18T12:03:29.2431123Z             {
2026-06-18T12:03:29.2431502Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2431807Z               "line": 140
2026-06-18T12:03:29.2432098Z             },
2026-06-18T12:03:29.2432485Z             {
2026-06-18T12:03:29.2432861Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2433148Z               "line": 149
2026-06-18T12:03:29.2433429Z             },
2026-06-18T12:03:29.2433715Z             {
2026-06-18T12:03:29.2434085Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2434393Z               "line": 158
2026-06-18T12:03:29.2434674Z             },
2026-06-18T12:03:29.2434955Z             {
2026-06-18T12:03:29.2435338Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2435643Z               "line": 169
2026-06-18T12:03:29.2435919Z             },
2026-06-18T12:03:29.2436210Z             {
2026-06-18T12:03:29.2436600Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2436902Z               "line": 177
2026-06-18T12:03:29.2437188Z             },
2026-06-18T12:03:29.2437465Z             {
2026-06-18T12:03:29.2437846Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2438151Z               "line": 186
2026-06-18T12:03:29.2438438Z             },
2026-06-18T12:03:29.2438714Z             {
2026-06-18T12:03:29.2439183Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2439490Z               "line": 195
2026-06-18T12:03:29.2439767Z             },
2026-06-18T12:03:29.2443689Z             {
2026-06-18T12:03:29.2444117Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2444422Z               "line": 204
2026-06-18T12:03:29.2444711Z             },
2026-06-18T12:03:29.2444997Z             {
2026-06-18T12:03:29.2445388Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2445692Z               "line": 216
2026-06-18T12:03:29.2445988Z             },
2026-06-18T12:03:29.2446270Z             {
2026-06-18T12:03:29.2446665Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2446966Z               "line": 223
2026-06-18T12:03:29.2447231Z             },
2026-06-18T12:03:29.2447525Z             {
2026-06-18T12:03:29.2447892Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2448198Z               "line": 232
2026-06-18T12:03:29.2448489Z             },
2026-06-18T12:03:29.2448760Z             {
2026-06-18T12:03:29.2449265Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2449565Z               "line": 239
2026-06-18T12:03:29.2449851Z             },
2026-06-18T12:03:29.2450128Z             {
2026-06-18T12:03:29.2450509Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2450824Z               "line": 306
2026-06-18T12:03:29.2451100Z             },
2026-06-18T12:03:29.2451387Z             {
2026-06-18T12:03:29.2451758Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2452054Z               "line": 318
2026-06-18T12:03:29.2452339Z             },
2026-06-18T12:03:29.2452613Z             {
2026-06-18T12:03:29.2453000Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2453309Z               "line": 405
2026-06-18T12:03:29.2453596Z             }
2026-06-18T12:03:29.2453872Z           ]
2026-06-18T12:03:29.2454157Z         },
2026-06-18T12:03:29.2454429Z         "int": {
2026-06-18T12:03:29.2454754Z           "complete": false,
2026-06-18T12:03:29.2455053Z           "evidence": []
2026-06-18T12:03:29.2455337Z         },
2026-06-18T12:03:29.2455628Z         "unit": {
2026-06-18T12:03:29.2455933Z           "complete": true,
2026-06-18T12:03:29.2456234Z           "evidence": [
2026-06-18T12:03:29.2456667Z             {
2026-06-18T12:03:29.2457054Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2457354Z               "line": 487
2026-06-18T12:03:29.2457639Z             },
2026-06-18T12:03:29.2457927Z             {
2026-06-18T12:03:29.2458313Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2458613Z               "line": 528
2026-06-18T12:03:29.2458886Z             },
2026-06-18T12:03:29.2459272Z             {
2026-06-18T12:03:29.2459800Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2460092Z               "line": 541
2026-06-18T12:03:29.2460365Z             },
2026-06-18T12:03:29.2460644Z             {
2026-06-18T12:03:29.2461021Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2461317Z               "line": 627
2026-06-18T12:03:29.2461604Z             }
2026-06-18T12:03:29.2461880Z           ]
2026-06-18T12:03:29.2462160Z         }
2026-06-18T12:03:29.2462446Z       }
2026-06-18T12:03:29.2462722Z     },
2026-06-18T12:03:29.2463001Z     {
2026-06-18T12:03:29.2463335Z       "id": "REQ-HAZARD-SOFT-CLEANUP",
2026-06-18T12:03:29.2463974Z       "title": "Soft-cleanup preserves state, removes only the ready marker (6.2)",
2026-06-18T12:03:29.2464298Z       "requiredStages": [
2026-06-18T12:03:29.2464579Z         "impl",
2026-06-18T12:03:29.2464870Z         "unit"
2026-06-18T12:03:29.2465153Z       ],
2026-06-18T12:03:29.2465454Z       "stages": {
2026-06-18T12:03:29.2465737Z         "doc": {
2026-06-18T12:03:29.2466059Z           "complete": false,
2026-06-18T12:03:29.2466369Z           "evidence": []
2026-06-18T12:03:29.2466655Z         },
2026-06-18T12:03:29.2466945Z         "impl": {
2026-06-18T12:03:29.2467251Z           "complete": true,
2026-06-18T12:03:29.2467556Z           "evidence": [
2026-06-18T12:03:29.2467827Z             {
2026-06-18T12:03:29.2468204Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.2468492Z               "line": 173
2026-06-18T12:03:29.2468774Z             },
2026-06-18T12:03:29.2469154Z             {
2026-06-18T12:03:29.2469561Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.2469870Z               "line": 167
2026-06-18T12:03:29.2470147Z             }
2026-06-18T12:03:29.2470428Z           ]
2026-06-18T12:03:29.2470714Z         },
2026-06-18T12:03:29.2470995Z         "int": {
2026-06-18T12:03:29.2471301Z           "complete": false,
2026-06-18T12:03:29.2471595Z           "evidence": []
2026-06-18T12:03:29.2471892Z         },
2026-06-18T12:03:29.2472173Z         "unit": {
2026-06-18T12:03:29.2472493Z           "complete": true,
2026-06-18T12:03:29.2472788Z           "evidence": [
2026-06-18T12:03:29.2473074Z             {
2026-06-18T12:03:29.2473464Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.2473757Z               "line": 295
2026-06-18T12:03:29.2474048Z             },
2026-06-18T12:03:29.2474324Z             {
2026-06-18T12:03:29.2474726Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.2475031Z               "line": 832
2026-06-18T12:03:29.2475312Z             },
2026-06-18T12:03:29.2475597Z             {
2026-06-18T12:03:29.2475990Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.2476297Z               "line": 845
2026-06-18T12:03:29.2476581Z             }
2026-06-18T12:03:29.2476862Z           ]
2026-06-18T12:03:29.2477143Z         }
2026-06-18T12:03:29.2477411Z       }
2026-06-18T12:03:29.2477702Z     },
2026-06-18T12:03:29.2477979Z     {
2026-06-18T12:03:29.2478345Z       "id": "REQ-HAZARD-STALE-INDEX-LOCK",
2026-06-18T12:03:29.2478792Z       "title": "Sweep stale lockfiles on daemon boot (1.3)",
2026-06-18T12:03:29.2479205Z       "requiredStages": [
2026-06-18T12:03:29.2479491Z         "impl",
2026-06-18T12:03:29.2479777Z         "unit"
2026-06-18T12:03:29.2480067Z       ],
2026-06-18T12:03:29.2480354Z       "stages": {
2026-06-18T12:03:29.2480636Z         "doc": {
2026-06-18T12:03:29.2480945Z           "complete": false,
2026-06-18T12:03:29.2481356Z           "evidence": []
2026-06-18T12:03:29.2481650Z         },
2026-06-18T12:03:29.2481936Z         "impl": {
2026-06-18T12:03:29.2482246Z           "complete": true,
2026-06-18T12:03:29.2482552Z           "evidence": [
2026-06-18T12:03:29.2482837Z             {
2026-06-18T12:03:29.2483233Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.2483534Z               "line": 116
2026-06-18T12:03:29.2483814Z             },
2026-06-18T12:03:29.2484183Z             {
2026-06-18T12:03:29.2484603Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.2484908Z               "line": 507
2026-06-18T12:03:29.2485175Z             }
2026-06-18T12:03:29.2485456Z           ]
2026-06-18T12:03:29.2485748Z         },
2026-06-18T12:03:29.2486033Z         "int": {
2026-06-18T12:03:29.2486352Z           "complete": false,
2026-06-18T12:03:29.2486658Z           "evidence": []
2026-06-18T12:03:29.2486943Z         },
2026-06-18T12:03:29.2487232Z         "unit": {
2026-06-18T12:03:29.2487547Z           "complete": true,
2026-06-18T12:03:29.2487853Z           "evidence": [
2026-06-18T12:03:29.2488138Z             {
2026-06-18T12:03:29.2488557Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.2488863Z               "line": 541
2026-06-18T12:03:29.2489243Z             }
2026-06-18T12:03:29.2489537Z           ]
2026-06-18T12:03:29.2489809Z         }
2026-06-18T12:03:29.2490095Z       }
2026-06-18T12:03:29.2490381Z     },
2026-06-18T12:03:29.2490652Z     {
2026-06-18T12:03:29.2491049Z       "id": "REQ-HAZARD-STALE-SIGNOFF-SENTINEL",
2026-06-18T12:03:29.2491582Z       "title": "Stale signoff sentinel does not kill a fresh start (3.2)",
2026-06-18T12:03:29.2491906Z       "requiredStages": [
2026-06-18T12:03:29.2492191Z         "impl",
2026-06-18T12:03:29.2492478Z         "unit"
2026-06-18T12:03:29.2492759Z       ],
2026-06-18T12:03:29.2493050Z       "stages": {
2026-06-18T12:03:29.2493336Z         "doc": {
2026-06-18T12:03:29.2493656Z           "complete": false,
2026-06-18T12:03:29.2493975Z           "evidence": []
2026-06-18T12:03:29.2494247Z         },
2026-06-18T12:03:29.2494546Z         "impl": {
2026-06-18T12:03:29.2494849Z           "complete": true,
2026-06-18T12:03:29.2495149Z           "evidence": [
2026-06-18T12:03:29.2495425Z             {
2026-06-18T12:03:29.2495836Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.2496142Z               "line": 552
2026-06-18T12:03:29.2496442Z             },
2026-06-18T12:03:29.2496752Z             {
2026-06-18T12:03:29.2497153Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.2497451Z               "line": 28
2026-06-18T12:03:29.2497740Z             }
2026-06-18T12:03:29.2498020Z           ]
2026-06-18T12:03:29.2498307Z         },
2026-06-18T12:03:29.2498592Z         "int": {
2026-06-18T12:03:29.2498907Z           "complete": false,
2026-06-18T12:03:29.2499319Z           "evidence": []
2026-06-18T12:03:29.2499590Z         },
2026-06-18T12:03:29.2499893Z         "unit": {
2026-06-18T12:03:29.2500201Z           "complete": true,
2026-06-18T12:03:29.2500506Z           "evidence": [
2026-06-18T12:03:29.2500792Z             {
2026-06-18T12:03:29.2501183Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.2501489Z               "line": 229
2026-06-18T12:03:29.2501770Z             }
2026-06-18T12:03:29.2502056Z           ]
2026-06-18T12:03:29.2502332Z         }
2026-06-18T12:03:29.2502629Z       }
2026-06-18T12:03:29.2502909Z     },
2026-06-18T12:03:29.2503190Z     {
2026-06-18T12:03:29.2503539Z       "id": "REQ-HAZARD-STDIN-SESSION-ID",
2026-06-18T12:03:29.2503977Z       "title": "Stdin session_id precedence over env (2.2)",
2026-06-18T12:03:29.2504311Z       "requiredStages": [],
2026-06-18T12:03:29.2504601Z       "stages": {
2026-06-18T12:03:29.2504892Z         "doc": {
2026-06-18T12:03:29.2505210Z           "complete": false,
2026-06-18T12:03:29.2505514Z           "evidence": []
2026-06-18T12:03:29.2505801Z         },
2026-06-18T12:03:29.2506196Z         "impl": {
2026-06-18T12:03:29.2506510Z           "complete": false,
2026-06-18T12:03:29.2506806Z           "evidence": []
2026-06-18T12:03:29.2507107Z         },
2026-06-18T12:03:29.2507388Z         "int": {
2026-06-18T12:03:29.2507703Z           "complete": false,
2026-06-18T12:03:29.2508011Z           "evidence": []
2026-06-18T12:03:29.2508305Z         },
2026-06-18T12:03:29.2508595Z         "unit": {
2026-06-18T12:03:29.2508905Z           "complete": false,
2026-06-18T12:03:29.2509449Z           "evidence": []
2026-06-18T12:03:29.2509744Z         }
2026-06-18T12:03:29.2510030Z       }
2026-06-18T12:03:29.2510308Z     },
2026-06-18T12:03:29.2510587Z     {
2026-06-18T12:03:29.2510968Z       "id": "REQ-HAZARD-SUBPROCESS-TIMEOUT",
2026-06-18T12:03:29.2511452Z       "title": "Every harness/git subprocess has a timeout (5.3)",
2026-06-18T12:03:29.2511772Z       "requiredStages": [
2026-06-18T12:03:29.2512058Z         "impl",
2026-06-18T12:03:29.2512349Z         "unit"
2026-06-18T12:03:29.2512636Z       ],
2026-06-18T12:03:29.2512926Z       "stages": {
2026-06-18T12:03:29.2513208Z         "doc": {
2026-06-18T12:03:29.2513513Z           "complete": false,
2026-06-18T12:03:29.2513822Z           "evidence": []
2026-06-18T12:03:29.2514109Z         },
2026-06-18T12:03:29.2514395Z         "impl": {
2026-06-18T12:03:29.2514705Z           "complete": true,
2026-06-18T12:03:29.2515005Z           "evidence": [
2026-06-18T12:03:29.2515295Z             {
2026-06-18T12:03:29.2515671Z               "path": "crates/spt-live/src/turn.rs",
2026-06-18T12:03:29.2515969Z               "line": 19
2026-06-18T12:03:29.2516255Z             },
2026-06-18T12:03:29.2516545Z             {
2026-06-18T12:03:29.2516957Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2517267Z               "line": 463
2026-06-18T12:03:29.2517557Z             },
2026-06-18T12:03:29.2517838Z             {
2026-06-18T12:03:29.2518240Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2518553Z               "line": 499
2026-06-18T12:03:29.2518850Z             },
2026-06-18T12:03:29.2519280Z             {
2026-06-18T12:03:29.2519675Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2519976Z               "line": 547
2026-06-18T12:03:29.2520252Z             },
2026-06-18T12:03:29.2520535Z             {
2026-06-18T12:03:29.2520915Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.2521232Z               "line": 15
2026-06-18T12:03:29.2521518Z             },
2026-06-18T12:03:29.2521800Z             {
2026-06-18T12:03:29.2522185Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.2522476Z               "line": 48
2026-06-18T12:03:29.2522767Z             },
2026-06-18T12:03:29.2523049Z             {
2026-06-18T12:03:29.2523439Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.2523745Z               "line": 119
2026-06-18T12:03:29.2524025Z             },
2026-06-18T12:03:29.2524320Z             {
2026-06-18T12:03:29.2524674Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2524974Z               "line": 3806
2026-06-18T12:03:29.2525250Z             }
2026-06-18T12:03:29.2525541Z           ]
2026-06-18T12:03:29.2525822Z         },
2026-06-18T12:03:29.2526112Z         "int": {
2026-06-18T12:03:29.2526429Z           "complete": false,
2026-06-18T12:03:29.2526734Z           "evidence": []
2026-06-18T12:03:29.2527025Z         },
2026-06-18T12:03:29.2527316Z         "unit": {
2026-06-18T12:03:29.2527631Z           "complete": true,
2026-06-18T12:03:29.2527936Z           "evidence": [
2026-06-18T12:03:29.2528208Z             {
2026-06-18T12:03:29.2528627Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2528927Z               "line": 765
2026-06-18T12:03:29.2529301Z             },
2026-06-18T12:03:29.2529573Z             {
2026-06-18T12:03:29.2529968Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.2530283Z               "line": 165
2026-06-18T12:03:29.2530679Z             },
2026-06-18T12:03:29.2530970Z             {
2026-06-18T12:03:29.2531353Z               "path": "crates/spt-store/src/gitrun.rs",
2026-06-18T12:03:29.2531655Z               "line": 175
2026-06-18T12:03:29.2531943Z             }
2026-06-18T12:03:29.2532225Z           ]
2026-06-18T12:03:29.2532515Z         }
2026-06-18T12:03:29.2532798Z       }
2026-06-18T12:03:29.2533078Z     },
2026-06-18T12:03:29.2533356Z     {
2026-06-18T12:03:29.2533818Z       "id": "REQ-HAZARD-SUDO-SECURE-PATH",
2026-06-18T12:03:29.2536522Z       "title": "Elevation guidance on Unix names the binary's ABSOLUTE path under sudo (a user-local install ~/.local/bin · ~/.cargo/bin is not on sudo's secure_path, so bare `sudo spt` dies 'command not found'); gated commands auto-elevate on an interactive TTY, else print the runnable hint (5.10)",
2026-06-18T12:03:29.2536839Z       "requiredStages": [
2026-06-18T12:03:29.2537128Z         "impl",
2026-06-18T12:03:29.2537409Z         "unit"
2026-06-18T12:03:29.2537724Z       ],
2026-06-18T12:03:29.2538009Z       "stages": {
2026-06-18T12:03:29.2538305Z         "doc": {
2026-06-18T12:03:29.2538625Z           "complete": false,
2026-06-18T12:03:29.2538925Z           "evidence": []
2026-06-18T12:03:29.2539298Z         },
2026-06-18T12:03:29.2539586Z         "impl": {
2026-06-18T12:03:29.2539903Z           "complete": true,
2026-06-18T12:03:29.2540199Z           "evidence": [
2026-06-18T12:03:29.2540485Z             {
2026-06-18T12:03:29.2540891Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2541191Z               "line": 192
2026-06-18T12:03:29.2541473Z             },
2026-06-18T12:03:29.2541749Z             {
2026-06-18T12:03:29.2542134Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2542437Z               "line": 279
2026-06-18T12:03:29.2542724Z             }
2026-06-18T12:03:29.2543005Z           ]
2026-06-18T12:03:29.2543291Z         },
2026-06-18T12:03:29.2543577Z         "int": {
2026-06-18T12:03:29.2543897Z           "complete": false,
2026-06-18T12:03:29.2544207Z           "evidence": []
2026-06-18T12:03:29.2544479Z         },
2026-06-18T12:03:29.2544775Z         "unit": {
2026-06-18T12:03:29.2545087Z           "complete": true,
2026-06-18T12:03:29.2545383Z           "evidence": [
2026-06-18T12:03:29.2545664Z             {
2026-06-18T12:03:29.2546022Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2546327Z               "line": 470
2026-06-18T12:03:29.2546613Z             },
2026-06-18T12:03:29.2546895Z             {
2026-06-18T12:03:29.2547261Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.2547564Z               "line": 526
2026-06-18T12:03:29.2547849Z             }
2026-06-18T12:03:29.2548131Z           ]
2026-06-18T12:03:29.2548427Z         }
2026-06-18T12:03:29.2548708Z       }
2026-06-18T12:03:29.2549056Z     },
2026-06-18T12:03:29.2549333Z     {
2026-06-18T12:03:29.2549709Z       "id": "REQ-HAZARD-TEMPLATE-ARGV-FILL",
2026-06-18T12:03:29.2561329Z       "title": "Command-template substitution fills argv ELEMENTS, not a re-tokenized string: spt-core currently `fill_template`s {key} values INTO the command STRING and THEN `tokenize`s the filled string (runtime.rs:94/122), so a multi-word {key} value whitespace-SPLITS into multiple argv tokens unless the adapter hand-quotes the placeholder, and a value containing a `\"` (or `;`) injects/breaks tokenization (shell-injection-adjacent). A filled value MUST become exactly ONE argv element regardless of spaces/quotes in the value. Fix: tokenize the TEMPLATE into argv FIRST, then `fill_template` EACH token, so a `{key}` slot resolves to a single element and the value never participates in tokenization (no whitespace-split, no quote/semicolon injection); preserve the missing-key / empty-command errors and `{{`/`}}` non-interpretation. perri's F-009 (v0.8.1 dogfood, argv-capture-confirmed): a multi-word `{psyche_prompt}` = \"PSYCHE REVIVAL time: epoch-ms:… incoming event: (none)\" arrived as argv[6..12] (7 stray tokens), the harness runner strict-parsed `--prompt` against the 2nd word, exited 2 within ~1s → phantom hosted perch. Applies to EVERY [session.<role>] template (psyche_init, extractor, notif, …); digest survives today only because its fills ({session_id}/{source}) are single-token.",
2026-06-18T12:03:29.2561807Z       "requiredStages": [
2026-06-18T12:03:29.2562093Z         "impl",
2026-06-18T12:03:29.2562384Z         "unit",
2026-06-18T12:03:29.2562807Z         "int"
2026-06-18T12:03:29.2563090Z       ],
2026-06-18T12:03:29.2563379Z       "stages": {
2026-06-18T12:03:29.2563662Z         "doc": {
2026-06-18T12:03:29.2563982Z           "complete": false,
2026-06-18T12:03:29.2564287Z           "evidence": []
2026-06-18T12:03:29.2564563Z         },
2026-06-18T12:03:29.2564850Z         "impl": {
2026-06-18T12:03:29.2565155Z           "complete": true,
2026-06-18T12:03:29.2565460Z           "evidence": [
2026-06-18T12:03:29.2565746Z             {
2026-06-18T12:03:29.2566184Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2566508Z               "line": 95
2026-06-18T12:03:29.2566784Z             },
2026-06-18T12:03:29.2567071Z             {
2026-06-18T12:03:29.2567476Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.2567787Z               "line": 132
2026-06-18T12:03:29.2568067Z             },
2026-06-18T12:03:29.2568352Z             {
2026-06-18T12:03:29.2568750Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.2569132Z               "line": 434
2026-06-18T12:03:29.2569429Z             },
2026-06-18T12:03:29.2569709Z             {
2026-06-18T12:03:29.2570115Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2570420Z               "line": 139
2026-06-18T12:03:29.2570721Z             },
2026-06-18T12:03:29.2571012Z             {
2026-06-18T12:03:29.2571410Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2571714Z               "line": 326
2026-06-18T12:03:29.2572005Z             },
2026-06-18T12:03:29.2572291Z             {
2026-06-18T12:03:29.2572696Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2572987Z               "line": 555
2026-06-18T12:03:29.2573273Z             }
2026-06-18T12:03:29.2573555Z           ]
2026-06-18T12:03:29.2573833Z         },
2026-06-18T12:03:29.2574117Z         "int": {
2026-06-18T12:03:29.2574422Z           "complete": true,
2026-06-18T12:03:29.2574732Z           "evidence": [
2026-06-18T12:03:29.2575005Z             {
2026-06-18T12:03:29.2575477Z               "path": "crates/spt/tests/livehost_nonresident_e2e.rs",
2026-06-18T12:03:29.2575782Z               "line": 32
2026-06-18T12:03:29.2576068Z             }
2026-06-18T12:03:29.2576344Z           ]
2026-06-18T12:03:29.2576620Z         },
2026-06-18T12:03:29.2576911Z         "unit": {
2026-06-18T12:03:29.2577226Z           "complete": true,
2026-06-18T12:03:29.2577512Z           "evidence": [
2026-06-18T12:03:29.2577794Z             {
2026-06-18T12:03:29.2578203Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2578517Z               "line": 625
2026-06-18T12:03:29.2578808Z             },
2026-06-18T12:03:29.2579177Z             {
2026-06-18T12:03:29.2579577Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2579887Z               "line": 646
2026-06-18T12:03:29.2580169Z             },
2026-06-18T12:03:29.2580451Z             {
2026-06-18T12:03:29.2580855Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2581161Z               "line": 662
2026-06-18T12:03:29.2581442Z             },
2026-06-18T12:03:29.2581733Z             {
2026-06-18T12:03:29.2582139Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2582439Z               "line": 680
2026-06-18T12:03:29.2582726Z             },
2026-06-18T12:03:29.2583008Z             {
2026-06-18T12:03:29.2583408Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2583820Z               "line": 704
2026-06-18T12:03:29.2584100Z             }
2026-06-18T12:03:29.2584384Z           ]
2026-06-18T12:03:29.2584663Z         }
2026-06-18T12:03:29.2584945Z       }
2026-06-18T12:03:29.2585212Z     },
2026-06-18T12:03:29.2585503Z     {
2026-06-18T12:03:29.2585851Z       "id": "REQ-HAZARD-UNC-PATH-STRIP",
2026-06-18T12:03:29.2586362Z       "title": "Strip Windows UNC prefix on serialized paths (5.4)",
2026-06-18T12:03:29.2586677Z       "requiredStages": [
2026-06-18T12:03:29.2587180Z         "impl",
2026-06-18T12:03:29.2587463Z         "unit"
2026-06-18T12:03:29.2587739Z       ],
2026-06-18T12:03:29.2588025Z       "stages": {
2026-06-18T12:03:29.2588306Z         "doc": {
2026-06-18T12:03:29.2588616Z           "complete": false,
2026-06-18T12:03:29.2588922Z           "evidence": []
2026-06-18T12:03:29.2589285Z         },
2026-06-18T12:03:29.2589582Z         "impl": {
2026-06-18T12:03:29.2589895Z           "complete": true,
2026-06-18T12:03:29.2590200Z           "evidence": [
2026-06-18T12:03:29.2590490Z             {
2026-06-18T12:03:29.2590883Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.2591183Z               "line": 35
2026-06-18T12:03:29.2591459Z             }
2026-06-18T12:03:29.2591745Z           ]
2026-06-18T12:03:29.2592012Z         },
2026-06-18T12:03:29.2592302Z         "int": {
2026-06-18T12:03:29.2592614Z           "complete": false,
2026-06-18T12:03:29.2592920Z           "evidence": []
2026-06-18T12:03:29.2593215Z         },
2026-06-18T12:03:29.2593501Z         "unit": {
2026-06-18T12:03:29.2593816Z           "complete": true,
2026-06-18T12:03:29.2594107Z           "evidence": [
2026-06-18T12:03:29.2594399Z             {
2026-06-18T12:03:29.2594775Z               "path": "crates/spt-store/src/atomic.rs",
2026-06-18T12:03:29.2595078Z               "line": 220
2026-06-18T12:03:29.2595362Z             }
2026-06-18T12:03:29.2595638Z           ]
2026-06-18T12:03:29.2595925Z         }
2026-06-18T12:03:29.2596191Z       }
2026-06-18T12:03:29.2596483Z     },
2026-06-18T12:03:29.2596759Z     {
2026-06-18T12:03:29.2597131Z       "id": "REQ-HAZARD-UNHOST-PSYCHE-REAP",
2026-06-18T12:03:29.2606752Z       "title": "On un-host, the detached `{id}-psyche` HARNESS PROCESS is reaped — not just its in-brain pulse-driver thread. Today stop_host (livehost.rs:203) trips the HostedLife stop flag + JOINS the driver thread, but the Psyche is a detached harness process (spawn_psyche → ManifestRuntime detached spawn, runtime.rs:341-356; its pid is untracked in HostedLife though stamped on the `{id}-psyche` perch, where residency-confirm already reads it). So endpoint-stop / mid-life agent-death / a B2/B5 offline-then-unhost leaves the psyche process ORPHANED, alive until the next daemon-stop (where Breap's job/group reaps the whole brain subtree). The Psyche STAYS a harness process by design (CONTEXT.md 97/203/251 — headless harness session, its own perch) — the fix does NOT move it in-brain; it SCOPED-kills the `{id}-psyche` pid on un-host (never machine-wide — shared box). Track the pid in HostedLife at host_one (cleanest) or read the `{id}-psyche` perch pid at stop_host. Composes with H3 (endpoint stop → offline → reconcile un-host → reap) and B2/B5 (the offline arms that trigger un-host). (v0.12.0)",
2026-06-18T12:03:29.2607114Z       "requiredStages": [
2026-06-18T12:03:29.2607400Z         "impl",
2026-06-18T12:03:29.2607696Z         "unit",
2026-06-18T12:03:29.2607977Z         "int"
2026-06-18T12:03:29.2608254Z       ],
2026-06-18T12:03:29.2608564Z       "stages": {
2026-06-18T12:03:29.2608845Z         "doc": {
2026-06-18T12:03:29.2609246Z           "complete": false,
2026-06-18T12:03:29.2609559Z           "evidence": []
2026-06-18T12:03:29.2609850Z         },
2026-06-18T12:03:29.2610142Z         "impl": {
2026-06-18T12:03:29.2610447Z           "complete": true,
2026-06-18T12:03:29.2610736Z           "evidence": [
2026-06-18T12:03:29.2611006Z             {
2026-06-18T12:03:29.2611421Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.2611854Z               "line": 202
2026-06-18T12:03:29.2612141Z             },
2026-06-18T12:03:29.2612421Z             {
2026-06-18T12:03:29.2612803Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T12:03:29.2613103Z               "line": 107
2026-06-18T12:03:29.2613384Z             },
2026-06-18T12:03:29.2613665Z             {
2026-06-18T12:03:29.2614045Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T12:03:29.2614346Z               "line": 138
2026-06-18T12:03:29.2614735Z             },
2026-06-18T12:03:29.2615013Z             {
2026-06-18T12:03:29.2615427Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2615723Z               "line": 209
2026-06-18T12:03:29.2616018Z             },
2026-06-18T12:03:29.2616296Z             {
2026-06-18T12:03:29.2616706Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2617007Z               "line": 246
2026-06-18T12:03:29.2617288Z             },
2026-06-18T12:03:29.2617574Z             {
2026-06-18T12:03:29.2617984Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.2618290Z               "line": 379
2026-06-18T12:03:29.2618576Z             }
2026-06-18T12:03:29.2618861Z           ]
2026-06-18T12:03:29.2619223Z         },
2026-06-18T12:03:29.2619509Z         "int": {
2026-06-18T12:03:29.2619820Z           "complete": true,
2026-06-18T12:03:29.2620119Z           "evidence": [
2026-06-18T12:03:29.2620401Z             {
2026-06-18T12:03:29.2620873Z               "path": "crates/spt/tests/unhost_psyche_reap_e2e.rs",
2026-06-18T12:03:29.2621168Z               "line": 17
2026-06-18T12:03:29.2621451Z             }
2026-06-18T12:03:29.2621738Z           ]
2026-06-18T12:03:29.2622019Z         },
2026-06-18T12:03:29.2622296Z         "unit": {
2026-06-18T12:03:29.2622615Z           "complete": true,
2026-06-18T12:03:29.2622916Z           "evidence": [
2026-06-18T12:03:29.2623207Z             {
2026-06-18T12:03:29.2623612Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.2623931Z               "line": 923
2026-06-18T12:03:29.2624211Z             }
2026-06-18T12:03:29.2624490Z           ]
2026-06-18T12:03:29.2624762Z         }
2026-06-18T12:03:29.2625047Z       }
2026-06-18T12:03:29.2625329Z     },
2026-06-18T12:03:29.2625601Z     {
2026-06-18T12:03:29.2625958Z       "id": "REQ-HAZARD-UPDATE-ROLLBACK",
2026-06-18T12:03:29.2626828Z       "title": "Self-update rejects version rollback; metadata expiry + adapter content signing (codex #5)",
2026-06-18T12:03:29.2627153Z       "requiredStages": [
2026-06-18T12:03:29.2627443Z         "impl",
2026-06-18T12:03:29.2627715Z         "unit"
2026-06-18T12:03:29.2628002Z       ],
2026-06-18T12:03:29.2628292Z       "stages": {
2026-06-18T12:03:29.2628583Z         "doc": {
2026-06-18T12:03:29.2628883Z           "complete": false,
2026-06-18T12:03:29.2629246Z           "evidence": []
2026-06-18T12:03:29.2629535Z         },
2026-06-18T12:03:29.2629825Z         "impl": {
2026-06-18T12:03:29.2630140Z           "complete": true,
2026-06-18T12:03:29.2630446Z           "evidence": [
2026-06-18T12:03:29.2630732Z             {
2026-06-18T12:03:29.2631147Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.2631438Z               "line": 405
2026-06-18T12:03:29.2631732Z             },
2026-06-18T12:03:29.2632016Z             {
2026-06-18T12:03:29.2632421Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.2632707Z               "line": 409
2026-06-18T12:03:29.2633003Z             },
2026-06-18T12:03:29.2633294Z             {
2026-06-18T12:03:29.2633690Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.2634005Z               "line": 156
2026-06-18T12:03:29.2634286Z             }
2026-06-18T12:03:29.2634571Z           ]
2026-06-18T12:03:29.2634850Z         },
2026-06-18T12:03:29.2635137Z         "int": {
2026-06-18T12:03:29.2635451Z           "complete": false,
2026-06-18T12:03:29.2635765Z           "evidence": []
2026-06-18T12:03:29.2636053Z         },
2026-06-18T12:03:29.2636447Z         "unit": {
2026-06-18T12:03:29.2636757Z           "complete": true,
2026-06-18T12:03:29.2637053Z           "evidence": [
2026-06-18T12:03:29.2637343Z             {
2026-06-18T12:03:29.2637746Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.2638047Z               "line": 865
2026-06-18T12:03:29.2638332Z             },
2026-06-18T12:03:29.2638619Z             {
2026-06-18T12:03:29.2639105Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.2639506Z               "line": 879
2026-06-18T12:03:29.2639797Z             },
2026-06-18T12:03:29.2640080Z             {
2026-06-18T12:03:29.2640472Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.2640773Z               "line": 898
2026-06-18T12:03:29.2641054Z             },
2026-06-18T12:03:29.2641340Z             {
2026-06-18T12:03:29.2641732Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.2642037Z               "line": 915
2026-06-18T12:03:29.2642330Z             },
2026-06-18T12:03:29.2642605Z             {
2026-06-18T12:03:29.2643035Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T12:03:29.2643330Z               "line": 441
2026-06-18T12:03:29.2643611Z             }
2026-06-18T12:03:29.2643897Z           ]
2026-06-18T12:03:29.2644183Z         }
2026-06-18T12:03:29.2644469Z       }
2026-06-18T12:03:29.2644750Z     },
2026-06-18T12:03:29.2645019Z     {
2026-06-18T12:03:29.2645387Z       "id": "REQ-HAZARD-VIEWER-ISOLATION",
2026-06-18T12:03:29.2651967Z       "title": "A slow / dead / hostile VIEWER must NEVER stall the controller, the PTY child, or the session drain thread. The broker drain fans output to the controller on the authoritative blocking bounded path (advances delivered_through) but to each viewer via a bounded per-viewer channel with a dedicated writer thread; the drain `try_send`s under the log lock and a viewer whose bounded queue OVERFLOWS (can't keep up) is EVICTED (queue dropped, writer thread ends, removed from the viewers map) — the drain thread NEVER touches a viewer socket, so no viewer write can backpressure or block it. A soft viewer cap bounds the thread count. Viewer eviction never perturbs the controller stream, the delivered_through cursor, or the child.",
2026-06-18T12:03:29.2652311Z       "requiredStages": [
2026-06-18T12:03:29.2652592Z         "unit",
2026-06-18T12:03:29.2652881Z         "int"
2026-06-18T12:03:29.2653165Z       ],
2026-06-18T12:03:29.2653470Z       "stages": {
2026-06-18T12:03:29.2653761Z         "doc": {
2026-06-18T12:03:29.2654071Z           "complete": true,
2026-06-18T12:03:29.2654376Z           "evidence": [
2026-06-18T12:03:29.2654653Z             {
2026-06-18T12:03:29.2655015Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2655320Z               "line": 381
2026-06-18T12:03:29.2655597Z             }
2026-06-18T12:03:29.2655882Z           ]
2026-06-18T12:03:29.2656157Z         },
2026-06-18T12:03:29.2656452Z         "impl": {
2026-06-18T12:03:29.2656787Z           "complete": true,
2026-06-18T12:03:29.2657086Z           "evidence": [
2026-06-18T12:03:29.2657372Z             {
2026-06-18T12:03:29.2657769Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.2658075Z               "line": 98
2026-06-18T12:03:29.2658358Z             }
2026-06-18T12:03:29.2658642Z           ]
2026-06-18T12:03:29.2658913Z         },
2026-06-18T12:03:29.2659290Z         "int": {
2026-06-18T12:03:29.2659610Z           "complete": true,
2026-06-18T12:03:29.2659905Z           "evidence": [
2026-06-18T12:03:29.2660187Z             {
2026-06-18T12:03:29.2660593Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.2660903Z               "line": 920
2026-06-18T12:03:29.2661182Z             }
2026-06-18T12:03:29.2661473Z           ]
2026-06-18T12:03:29.2661755Z         },
2026-06-18T12:03:29.2662037Z         "unit": {
2026-06-18T12:03:29.2662355Z           "complete": true,
2026-06-18T12:03:29.2662641Z           "evidence": [
2026-06-18T12:03:29.2663065Z             {
2026-06-18T12:03:29.2663455Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.2663763Z               "line": 1534
2026-06-18T12:03:29.2664049Z             }
2026-06-18T12:03:29.2664330Z           ]
2026-06-18T12:03:29.2664603Z         }
2026-06-18T12:03:29.2664884Z       }
2026-06-18T12:03:29.2665161Z     },
2026-06-18T12:03:29.2665434Z     {
2026-06-18T12:03:29.2665791Z       "id": "REQ-HAZARD-WAN-ORIGIN-AUTH",
2026-06-18T12:03:29.2668276Z       "title": "WAN-inbound origin is transport truth, never payload: the access gate's subject (ADR-0009 origin-node whitelist) is the QUIC handshake-proven remote node id from the broker's conn/stream table — a forged origin/node field inside record bytes is inert (7.5)",
2026-06-18T12:03:29.2668601Z       "requiredStages": [
2026-06-18T12:03:29.2668889Z         "doc",
2026-06-18T12:03:29.2669245Z         "impl",
2026-06-18T12:03:29.2669545Z         "unit"
2026-06-18T12:03:29.2669850Z       ],
2026-06-18T12:03:29.2670136Z       "stages": {
2026-06-18T12:03:29.2670423Z         "doc": {
2026-06-18T12:03:29.2670733Z           "complete": true,
2026-06-18T12:03:29.2671038Z           "evidence": [
2026-06-18T12:03:29.2671319Z             {
2026-06-18T12:03:29.2671685Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2671986Z               "line": 366
2026-06-18T12:03:29.2672268Z             }
2026-06-18T12:03:29.2672558Z           ]
2026-06-18T12:03:29.2672864Z         },
2026-06-18T12:03:29.2673160Z         "impl": {
2026-06-18T12:03:29.2673470Z           "complete": true,
2026-06-18T12:03:29.2673770Z           "evidence": [
2026-06-18T12:03:29.2674059Z             {
2026-06-18T12:03:29.2674453Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.2674749Z               "line": 87
2026-06-18T12:03:29.2675035Z             },
2026-06-18T12:03:29.2675321Z             {
2026-06-18T12:03:29.2675712Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T12:03:29.2676022Z               "line": 105
2026-06-18T12:03:29.2676328Z             },
2026-06-18T12:03:29.2676618Z             {
2026-06-18T12:03:29.2677026Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.2677320Z               "line": 55
2026-06-18T12:03:29.2677607Z             },
2026-06-18T12:03:29.2677887Z             {
2026-06-18T12:03:29.2678302Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.2678612Z               "line": 31
2026-06-18T12:03:29.2678890Z             },
2026-06-18T12:03:29.2679266Z             {
2026-06-18T12:03:29.2683119Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.2683461Z               "line": 446
2026-06-18T12:03:29.2683748Z             },
2026-06-18T12:03:29.2684035Z             {
2026-06-18T12:03:29.2684448Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.2684751Z               "line": 95
2026-06-18T12:03:29.2685042Z             },
2026-06-18T12:03:29.2685328Z             {
2026-06-18T12:03:29.2685747Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.2686048Z               "line": 29
2026-06-18T12:03:29.2686333Z             },
2026-06-18T12:03:29.2686620Z             {
2026-06-18T12:03:29.2687034Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.2687343Z               "line": 104
2026-06-18T12:03:29.2687623Z             },
2026-06-18T12:03:29.2687923Z             {
2026-06-18T12:03:29.2688351Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2688656Z               "line": 208
2026-06-18T12:03:29.2689034Z             },
2026-06-18T12:03:29.2689310Z             {
2026-06-18T12:03:29.2689717Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T12:03:29.2690019Z               "line": 28
2026-06-18T12:03:29.2690303Z             },
2026-06-18T12:03:29.2690589Z             {
2026-06-18T12:03:29.2690995Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T12:03:29.2691448Z               "line": 74
2026-06-18T12:03:29.2691729Z             },
2026-06-18T12:03:29.2692002Z             {
2026-06-18T12:03:29.2692425Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T12:03:29.2692726Z               "line": 32
2026-06-18T12:03:29.2693007Z             },
2026-06-18T12:03:29.2693293Z             {
2026-06-18T12:03:29.2693669Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.2694060Z               "line": 40
2026-06-18T12:03:29.2694346Z             },
2026-06-18T12:03:29.2694618Z             {
2026-06-18T12:03:29.2694989Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.2695288Z               "line": 184
2026-06-18T12:03:29.2695574Z             },
2026-06-18T12:03:29.2695859Z             {
2026-06-18T12:03:29.2696231Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.2696532Z               "line": 61
2026-06-18T12:03:29.2696813Z             },
2026-06-18T12:03:29.2697105Z             {
2026-06-18T12:03:29.2697476Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.2697777Z               "line": 131
2026-06-18T12:03:29.2698070Z             },
2026-06-18T12:03:29.2698344Z             {
2026-06-18T12:03:29.2698727Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.2699099Z               "line": 223
2026-06-18T12:03:29.2699385Z             },
2026-06-18T12:03:29.2699676Z             {
2026-06-18T12:03:29.2700057Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T12:03:29.2700358Z               "line": 37
2026-06-18T12:03:29.2700646Z             },
2026-06-18T12:03:29.2700930Z             {
2026-06-18T12:03:29.2701317Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.2701623Z               "line": 38
2026-06-18T12:03:29.2701894Z             },
2026-06-18T12:03:29.2702174Z             {
2026-06-18T12:03:29.2702562Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T12:03:29.2702853Z               "line": 36
2026-06-18T12:03:29.2703139Z             },
2026-06-18T12:03:29.2703408Z             {
2026-06-18T12:03:29.2703785Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T12:03:29.2704095Z               "line": 40
2026-06-18T12:03:29.2704372Z             }
2026-06-18T12:03:29.2704658Z           ]
2026-06-18T12:03:29.2704944Z         },
2026-06-18T12:03:29.2705221Z         "int": {
2026-06-18T12:03:29.2705540Z           "complete": false,
2026-06-18T12:03:29.2705848Z           "evidence": []
2026-06-18T12:03:29.2706129Z         },
2026-06-18T12:03:29.2706414Z         "unit": {
2026-06-18T12:03:29.2706725Z           "complete": true,
2026-06-18T12:03:29.2707021Z           "evidence": [
2026-06-18T12:03:29.2707311Z             {
2026-06-18T12:03:29.2707722Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.2708022Z               "line": 212
2026-06-18T12:03:29.2708309Z             },
2026-06-18T12:03:29.2708587Z             {
2026-06-18T12:03:29.2709082Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-18T12:03:29.2709392Z               "line": 136
2026-06-18T12:03:29.2709701Z             },
2026-06-18T12:03:29.2709983Z             {
2026-06-18T12:03:29.2710426Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T12:03:29.2710754Z               "line": 685
2026-06-18T12:03:29.2711064Z             },
2026-06-18T12:03:29.2711381Z             {
2026-06-18T12:03:29.2711776Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T12:03:29.2712077Z               "line": 224
2026-06-18T12:03:29.2712353Z             },
2026-06-18T12:03:29.2712644Z             {
2026-06-18T12:03:29.2713054Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T12:03:29.2713350Z               "line": 206
2026-06-18T12:03:29.2713641Z             },
2026-06-18T12:03:29.2713921Z             {
2026-06-18T12:03:29.2714312Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T12:03:29.2714719Z               "line": 112
2026-06-18T12:03:29.2715013Z             },
2026-06-18T12:03:29.2715289Z             {
2026-06-18T12:03:29.2715663Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T12:03:29.2715968Z               "line": 157
2026-06-18T12:03:29.2716256Z             },
2026-06-18T12:03:29.2716535Z             {
2026-06-18T12:03:29.2716936Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.2717342Z               "line": 215
2026-06-18T12:03:29.2717623Z             },
2026-06-18T12:03:29.2717900Z             {
2026-06-18T12:03:29.2718291Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T12:03:29.2718587Z               "line": 141
2026-06-18T12:03:29.2718874Z             },
2026-06-18T12:03:29.2719233Z             {
2026-06-18T12:03:29.2719613Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T12:03:29.2719923Z               "line": 162
2026-06-18T12:03:29.2720200Z             }
2026-06-18T12:03:29.2720491Z           ]
2026-06-18T12:03:29.2720757Z         }
2026-06-18T12:03:29.2721043Z       }
2026-06-18T12:03:29.2721320Z     },
2026-06-18T12:03:29.2721595Z     {
2026-06-18T12:03:29.2722003Z       "id": "REQ-HAZARD-WIN-PTY-PROGRAM-RESOLVE",
2026-06-18T12:03:29.2727682Z       "title": "Native-PTY spawn must resolve a bare program name with PATHEXT precedence and run a non-PE target through its interpreter: portable-pty's own `which` takes the FIRST PATH match — an extensionless shebang shim (e.g. a node CLI `ccs` shipped beside `ccs.cmd`) — and CreateProcessW then rejects the non-PE file with os error 193 ('not a valid Win32 application'); spt-term resolves the program itself (PATHEXT order prefers .EXE over .CMD; .cmd/.bat → cmd.exe /d /c, .ps1 → powershell -NoProfile -File) so a bare harness/shell [session.self] command actually launches on Windows. Unix is a passthrough (execve honours the shebang).",
2026-06-18T12:03:29.2728030Z       "requiredStages": [
2026-06-18T12:03:29.2728321Z         "doc",
2026-06-18T12:03:29.2728636Z         "impl",
2026-06-18T12:03:29.2728926Z         "unit",
2026-06-18T12:03:29.2729294Z         "int"
2026-06-18T12:03:29.2729580Z       ],
2026-06-18T12:03:29.2729863Z       "stages": {
2026-06-18T12:03:29.2730155Z         "doc": {
2026-06-18T12:03:29.2730469Z           "complete": true,
2026-06-18T12:03:29.2730760Z           "evidence": [
2026-06-18T12:03:29.2731046Z             {
2026-06-18T12:03:29.2731403Z               "path": "docs/KNOWN-HAZARDS.md",
2026-06-18T12:03:29.2731738Z               "line": 250
2026-06-18T12:03:29.2732019Z             }
2026-06-18T12:03:29.2732298Z           ]
2026-06-18T12:03:29.2732587Z         },
2026-06-18T12:03:29.2732877Z         "impl": {
2026-06-18T12:03:29.2733187Z           "complete": true,
2026-06-18T12:03:29.2733487Z           "evidence": [
2026-06-18T12:03:29.2733770Z             {
2026-06-18T12:03:29.2734136Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T12:03:29.2734437Z               "line": 135
2026-06-18T12:03:29.2734723Z             },
2026-06-18T12:03:29.2734999Z             {
2026-06-18T12:03:29.2735370Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T12:03:29.2735662Z               "line": 157
2026-06-18T12:03:29.2735953Z             }
2026-06-18T12:03:29.2736239Z           ]
2026-06-18T12:03:29.2736516Z         },
2026-06-18T12:03:29.2736807Z         "int": {
2026-06-18T12:03:29.2737107Z           "complete": true,
2026-06-18T12:03:29.2737424Z           "evidence": [
2026-06-18T12:03:29.2737703Z             {
2026-06-18T12:03:29.2738119Z               "path": "crates/spt-term/tests/winspawn.rs",
2026-06-18T12:03:29.2738430Z               "line": 15
2026-06-18T12:03:29.2738711Z             }
2026-06-18T12:03:29.2739073Z           ]
2026-06-18T12:03:29.2739350Z         },
2026-06-18T12:03:29.2739636Z         "unit": {
2026-06-18T12:03:29.2739946Z           "complete": true,
2026-06-18T12:03:29.2740248Z           "evidence": [
2026-06-18T12:03:29.2740528Z             {
2026-06-18T12:03:29.2741029Z               "path": "crates/spt-term/src/winprog.rs",
2026-06-18T12:03:29.2741329Z               "line": 233
2026-06-18T12:03:29.2741611Z             }
2026-06-18T12:03:29.2741887Z           ]
2026-06-18T12:03:29.2742168Z         }
2026-06-18T12:03:29.2742459Z       }
2026-06-18T12:03:29.2742739Z     },
2026-06-18T12:03:29.2743004Z     {
2026-06-18T12:03:29.2743381Z       "id": "REQ-HAZARD-WINDOWS-PID-RECYCLE",
2026-06-18T12:03:29.2743891Z       "title": "Windows PID-recycling false positives guarded (5.1)",
2026-06-18T12:03:29.2744325Z       "requiredStages": [
2026-06-18T12:03:29.2744611Z         "impl",
2026-06-18T12:03:29.2744897Z         "unit"
2026-06-18T12:03:29.2745188Z       ],
2026-06-18T12:03:29.2745465Z       "stages": {
2026-06-18T12:03:29.2745750Z         "doc": {
2026-06-18T12:03:29.2746060Z           "complete": false,
2026-06-18T12:03:29.2746355Z           "evidence": []
2026-06-18T12:03:29.2746641Z         },
2026-06-18T12:03:29.2746931Z         "impl": {
2026-06-18T12:03:29.2747242Z           "complete": true,
2026-06-18T12:03:29.2747538Z           "evidence": [
2026-06-18T12:03:29.2747828Z             {
2026-06-18T12:03:29.2748216Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.2748511Z               "line": 95
2026-06-18T12:03:29.2748789Z             },
2026-06-18T12:03:29.2749145Z             {
2026-06-18T12:03:29.2749523Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.2749828Z               "line": 117
2026-06-18T12:03:29.2750118Z             }
2026-06-18T12:03:29.2750390Z           ]
2026-06-18T12:03:29.2750671Z         },
2026-06-18T12:03:29.2750947Z         "int": {
2026-06-18T12:03:29.2751260Z           "complete": false,
2026-06-18T12:03:29.2751561Z           "evidence": []
2026-06-18T12:03:29.2751833Z         },
2026-06-18T12:03:29.2752118Z         "unit": {
2026-06-18T12:03:29.2752413Z           "complete": true,
2026-06-18T12:03:29.2752719Z           "evidence": [
2026-06-18T12:03:29.2753005Z             {
2026-06-18T12:03:29.2753395Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.2753702Z               "line": 250
2026-06-18T12:03:29.2753988Z             },
2026-06-18T12:03:29.2754260Z             {
2026-06-18T12:03:29.2754632Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.2754937Z               "line": 412
2026-06-18T12:03:29.2755214Z             },
2026-06-18T12:03:29.2755500Z             {
2026-06-18T12:03:29.2755901Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.2756200Z               "line": 580
2026-06-18T12:03:29.2756486Z             },
2026-06-18T12:03:29.2756763Z             {
2026-06-18T12:03:29.2757149Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.2757449Z               "line": 638
2026-06-18T12:03:29.2757740Z             }
2026-06-18T12:03:29.2758012Z           ]
2026-06-18T12:03:29.2758294Z         }
2026-06-18T12:03:29.2758592Z       }
2026-06-18T12:03:29.2758862Z     },
2026-06-18T12:03:29.2759235Z     {
2026-06-18T12:03:29.2759569Z       "id": "REQ-HAZARD-WORKER-PATH",
2026-06-18T12:03:29.2760174Z       "title": "Single source of truth for Worker/Psyche perch location (1.5)",
2026-06-18T12:03:29.2760494Z       "requiredStages": [
2026-06-18T12:03:29.2760785Z         "impl",
2026-06-18T12:03:29.2761061Z         "unit"
2026-06-18T12:03:29.2761345Z       ],
2026-06-18T12:03:29.2761643Z       "stages": {
2026-06-18T12:03:29.2761924Z         "doc": {
2026-06-18T12:03:29.2762253Z           "complete": false,
2026-06-18T12:03:29.2762554Z           "evidence": []
2026-06-18T12:03:29.2762835Z         },
2026-06-18T12:03:29.2763136Z         "impl": {
2026-06-18T12:03:29.2763446Z           "complete": true,
2026-06-18T12:03:29.2763742Z           "evidence": [
2026-06-18T12:03:29.2764027Z             {
2026-06-18T12:03:29.2764412Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2764716Z               "line": 262
2026-06-18T12:03:29.2764993Z             },
2026-06-18T12:03:29.2765412Z             {
2026-06-18T12:03:29.2765788Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2766098Z               "line": 307
2026-06-18T12:03:29.2766384Z             },
2026-06-18T12:03:29.2766675Z             {
2026-06-18T12:03:29.2767056Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2767356Z               "line": 319
2026-06-18T12:03:29.2767638Z             }
2026-06-18T12:03:29.2767919Z           ]
2026-06-18T12:03:29.2768305Z         },
2026-06-18T12:03:29.2768605Z         "int": {
2026-06-18T12:03:29.2768925Z           "complete": false,
2026-06-18T12:03:29.2769312Z           "evidence": []
2026-06-18T12:03:29.2769585Z         },
2026-06-18T12:03:29.2769876Z         "unit": {
2026-06-18T12:03:29.2770181Z           "complete": true,
2026-06-18T12:03:29.2770486Z           "evidence": [
2026-06-18T12:03:29.2770763Z             {
2026-06-18T12:03:29.2771153Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2771458Z               "line": 455
2026-06-18T12:03:29.2771745Z             },
2026-06-18T12:03:29.2772020Z             {
2026-06-18T12:03:29.2772399Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.2772710Z               "line": 499
2026-06-18T12:03:29.2772991Z             }
2026-06-18T12:03:29.2773272Z           ]
2026-06-18T12:03:29.2773563Z         }
2026-06-18T12:03:29.2773834Z       }
2026-06-18T12:03:29.2774120Z     },
2026-06-18T12:03:29.2774405Z     {
2026-06-18T12:03:29.2774727Z       "id": "REQ-HOST-RUN-1",
2026-06-18T12:03:29.2781780Z       "title": "spt-hosted harness bringup: `spt endpoint run` spawns an adapter's `[session.self]` command template into a broker-held PTY (the spawn-session seam, brain.rs spawn_session_pid — same broker path shellhost.rs launch_shell_brokered_in uses for shells, now for kind=\"harness\" self-role), registers the perch under the given endpoint id, returns the id. Reverses today's harness-hosted-only launch (external launcher → `api bind`). Non-interactive flag set (--adapter <a[:profile]> --id <id> --create --resume <session> --attach|--start|--view) covers every terminal action of the W2 interactive picker so shortcuts (cc-<id>) bake fully non-interactive launches; composite adapter:profile resolves via registry::resolve_option leaf-replace overlay.",
2026-06-18T12:03:29.2782128Z       "requiredStages": [
2026-06-18T12:03:29.2782409Z         "impl",
2026-06-18T12:03:29.2782707Z         "unit",
2026-06-18T12:03:29.2783012Z         "int"
2026-06-18T12:03:29.2783298Z       ],
2026-06-18T12:03:29.2783580Z       "stages": {
2026-06-18T12:03:29.2783866Z         "doc": {
2026-06-18T12:03:29.2784186Z           "complete": false,
2026-06-18T12:03:29.2784495Z           "evidence": []
2026-06-18T12:03:29.2784773Z         },
2026-06-18T12:03:29.2785060Z         "impl": {
2026-06-18T12:03:29.2785378Z           "complete": true,
2026-06-18T12:03:29.2785669Z           "evidence": [
2026-06-18T12:03:29.2785945Z             {
2026-06-18T12:03:29.2786376Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2786700Z               "line": 30
2026-06-18T12:03:29.2786980Z             },
2026-06-18T12:03:29.2787266Z             {
2026-06-18T12:03:29.2787692Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2787981Z               "line": 69
2026-06-18T12:03:29.2788266Z             },
2026-06-18T12:03:29.2788548Z             {
2026-06-18T12:03:29.2789044Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2789354Z               "line": 142
2026-06-18T12:03:29.2789641Z             },
2026-06-18T12:03:29.2789932Z             {
2026-06-18T12:03:29.2790278Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2790576Z               "line": 1252
2026-06-18T12:03:29.2790862Z             }
2026-06-18T12:03:29.2791148Z           ]
2026-06-18T12:03:29.2791429Z         },
2026-06-18T12:03:29.2791715Z         "int": {
2026-06-18T12:03:29.2792040Z           "complete": true,
2026-06-18T12:03:29.2792456Z           "evidence": [
2026-06-18T12:03:29.2792737Z             {
2026-06-18T12:03:29.2793145Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.2793458Z               "line": 280
2026-06-18T12:03:29.2793744Z             }
2026-06-18T12:03:29.2794020Z           ]
2026-06-18T12:03:29.2794315Z         },
2026-06-18T12:03:29.2794602Z         "unit": {
2026-06-18T12:03:29.2794921Z           "complete": true,
2026-06-18T12:03:29.2795323Z           "evidence": [
2026-06-18T12:03:29.2795607Z             {
2026-06-18T12:03:29.2796039Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2796340Z               "line": 184
2026-06-18T12:03:29.2796621Z             },
2026-06-18T12:03:29.2796906Z             {
2026-06-18T12:03:29.2797331Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2797646Z               "line": 225
2026-06-18T12:03:29.2797947Z             },
2026-06-18T12:03:29.2798229Z             {
2026-06-18T12:03:29.2798652Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2799041Z               "line": 258
2026-06-18T12:03:29.2799314Z             }
2026-06-18T12:03:29.2799600Z           ]
2026-06-18T12:03:29.2799886Z         }
2026-06-18T12:03:29.2800163Z       }
2026-06-18T12:03:29.2800454Z     },
2026-06-18T12:03:29.2800714Z     {
2026-06-18T12:03:29.2801035Z       "id": "REQ-HOST-RUN-2",
2026-06-18T12:03:29.2806818Z       "title": "Project-scoped working directory for spt-hosted bringup: `spt endpoint run` lands the broker-spawned harness PTY in the user's PROJECT cwd, not the daemon's, via an additive `SpawnReq.cwd` field carried through the broker PTY spawn (portable-pty CommandBuilder cwd). N-1-safe wire change (additive, defaulted). Required because the consumer (Claude Code) is project-scoped: broker-inherited cwd = the daemon's cwd = the wrong `.claude`, wrong session history, wrong digest source; `cc <id>` at a project root MUST land the harness in that project. W1 ships broker-inherited cwd as a bringup-proof shortcut only; this REQ must land before the M12 gate (doyle, 2026-06-14).",
2026-06-18T12:03:29.2807166Z       "requiredStages": [
2026-06-18T12:03:29.2807457Z         "impl",
2026-06-18T12:03:29.2807742Z         "unit",
2026-06-18T12:03:29.2808024Z         "int"
2026-06-18T12:03:29.2808310Z       ],
2026-06-18T12:03:29.2808596Z       "stages": {
2026-06-18T12:03:29.2808892Z         "doc": {
2026-06-18T12:03:29.2809282Z           "complete": false,
2026-06-18T12:03:29.2809588Z           "evidence": []
2026-06-18T12:03:29.2809869Z         },
2026-06-18T12:03:29.2810165Z         "impl": {
2026-06-18T12:03:29.2810470Z           "complete": true,
2026-06-18T12:03:29.2810757Z           "evidence": [
2026-06-18T12:03:29.2811043Z             {
2026-06-18T12:03:29.2811469Z               "path": "crates/spt-daemon/src/harnesshost.rs",
2026-06-18T12:03:29.2811769Z               "line": 143
2026-06-18T12:03:29.2812050Z             },
2026-06-18T12:03:29.2812341Z             {
2026-06-18T12:03:29.2812722Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T12:03:29.2813013Z               "line": 113
2026-06-18T12:03:29.2813300Z             }
2026-06-18T12:03:29.2813581Z           ]
2026-06-18T12:03:29.2813867Z         },
2026-06-18T12:03:29.2814155Z         "int": {
2026-06-18T12:03:29.2814472Z           "complete": true,
2026-06-18T12:03:29.2814773Z           "evidence": [
2026-06-18T12:03:29.2815049Z             {
2026-06-18T12:03:29.2815470Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.2815765Z               "line": 455
2026-06-18T12:03:29.2816061Z             }
2026-06-18T12:03:29.2816337Z           ]
2026-06-18T12:03:29.2816623Z         },
2026-06-18T12:03:29.2816916Z         "unit": {
2026-06-18T12:03:29.2817222Z           "complete": true,
2026-06-18T12:03:29.2817526Z           "evidence": [
2026-06-18T12:03:29.2817807Z             {
2026-06-18T12:03:29.2818213Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-18T12:03:29.2818632Z               "line": 86
2026-06-18T12:03:29.2818918Z             }
2026-06-18T12:03:29.2819286Z           ]
2026-06-18T12:03:29.2819565Z         }
2026-06-18T12:03:29.2819852Z       }
2026-06-18T12:03:29.2820134Z     },
2026-06-18T12:03:29.2820410Z     {
2026-06-18T12:03:29.2820715Z       "id": "REQ-INFRA-1",
2026-06-18T12:03:29.2821317Z       "title": "GitHub issue tracking for v1; tangled.org as migration target",
2026-06-18T12:03:29.2821740Z       "requiredStages": [],
2026-06-18T12:03:29.2822033Z       "stages": {
2026-06-18T12:03:29.2822324Z         "doc": {
2026-06-18T12:03:29.2822634Z           "complete": false,
2026-06-18T12:03:29.2822930Z           "evidence": []
2026-06-18T12:03:29.2823206Z         },
2026-06-18T12:03:29.2823497Z         "impl": {
2026-06-18T12:03:29.2823812Z           "complete": false,
2026-06-18T12:03:29.2824117Z           "evidence": []
2026-06-18T12:03:29.2824403Z         },
2026-06-18T12:03:29.2824697Z         "int": {
2026-06-18T12:03:29.2824999Z           "complete": false,
2026-06-18T12:03:29.2825299Z           "evidence": []
2026-06-18T12:03:29.2825596Z         },
2026-06-18T12:03:29.2825892Z         "unit": {
2026-06-18T12:03:29.2826201Z           "complete": false,
2026-06-18T12:03:29.2826511Z           "evidence": []
2026-06-18T12:03:29.2826802Z         }
2026-06-18T12:03:29.2827094Z       }
2026-06-18T12:03:29.2827364Z     },
2026-06-18T12:03:29.2827643Z     {
2026-06-18T12:03:29.2827948Z       "id": "REQ-INST-1",
2026-06-18T12:03:29.2828463Z       "title": "endpoint ID vs instance split (adapter-agnostic ID)",
2026-06-18T12:03:29.2828787Z       "requiredStages": [],
2026-06-18T12:03:29.2829144Z       "stages": {
2026-06-18T12:03:29.2829459Z         "doc": {
2026-06-18T12:03:29.2829769Z           "complete": false,
2026-06-18T12:03:29.2830078Z           "evidence": []
2026-06-18T12:03:29.2830374Z         },
2026-06-18T12:03:29.2830665Z         "impl": {
2026-06-18T12:03:29.2830975Z           "complete": false,
2026-06-18T12:03:29.2831275Z           "evidence": []
2026-06-18T12:03:29.2831571Z         },
2026-06-18T12:03:29.2831844Z         "int": {
2026-06-18T12:03:29.2832159Z           "complete": false,
2026-06-18T12:03:29.2832466Z           "evidence": []
2026-06-18T12:03:29.2832740Z         },
2026-06-18T12:03:29.2833040Z         "unit": {
2026-06-18T12:03:29.2833345Z           "complete": false,
2026-06-18T12:03:29.2833641Z           "evidence": []
2026-06-18T12:03:29.2833918Z         }
2026-06-18T12:03:29.2834204Z       }
2026-06-18T12:03:29.2834486Z     },
2026-06-18T12:03:29.2834763Z     {
2026-06-18T12:03:29.2835078Z       "id": "REQ-INST-10",
2026-06-18T12:03:29.2835751Z       "title": "Qualified addressing [subnet:]id[@node] + ambiguity forces qualification",
2026-06-18T12:03:29.2836070Z       "requiredStages": [
2026-06-18T12:03:29.2836352Z         "impl",
2026-06-18T12:03:29.2836643Z         "unit"
2026-06-18T12:03:29.2836929Z       ],
2026-06-18T12:03:29.2837215Z       "stages": {
2026-06-18T12:03:29.2837496Z         "doc": {
2026-06-18T12:03:29.2837819Z           "complete": false,
2026-06-18T12:03:29.2838126Z           "evidence": []
2026-06-18T12:03:29.2838408Z         },
2026-06-18T12:03:29.2838704Z         "impl": {
2026-06-18T12:03:29.2839094Z           "complete": true,
2026-06-18T12:03:29.2839385Z           "evidence": [
2026-06-18T12:03:29.2839672Z             {
2026-06-18T12:03:29.2840072Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2840368Z               "line": 648
2026-06-18T12:03:29.2840653Z             },
2026-06-18T12:03:29.2840943Z             {
2026-06-18T12:03:29.2841344Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2841654Z               "line": 725
2026-06-18T12:03:29.2841930Z             },
2026-06-18T12:03:29.2842212Z             {
2026-06-18T12:03:29.2842603Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T12:03:29.2842902Z               "line": 13
2026-06-18T12:03:29.2843191Z             },
2026-06-18T12:03:29.2843468Z             {
2026-06-18T12:03:29.2843958Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T12:03:29.2844254Z               "line": 67
2026-06-18T12:03:29.2844535Z             },
2026-06-18T12:03:29.2844822Z             {
2026-06-18T12:03:29.2845179Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.2845475Z               "line": 18
2026-06-18T12:03:29.2845770Z             },
2026-06-18T12:03:29.2846053Z             {
2026-06-18T12:03:29.2846540Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.2846835Z               "line": 444
2026-06-18T12:03:29.2847121Z             }
2026-06-18T12:03:29.2847398Z           ]
2026-06-18T12:03:29.2847679Z         },
2026-06-18T12:03:29.2847974Z         "int": {
2026-06-18T12:03:29.2848285Z           "complete": false,
2026-06-18T12:03:29.2848592Z           "evidence": []
2026-06-18T12:03:29.2848873Z         },
2026-06-18T12:03:29.2849250Z         "unit": {
2026-06-18T12:03:29.2849555Z           "complete": true,
2026-06-18T12:03:29.2849864Z           "evidence": [
2026-06-18T12:03:29.2850156Z             {
2026-06-18T12:03:29.2850561Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2850865Z               "line": 932
2026-06-18T12:03:29.2851147Z             },
2026-06-18T12:03:29.2851433Z             {
2026-06-18T12:03:29.2851837Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2852143Z               "line": 1309
2026-06-18T12:03:29.2852448Z             },
2026-06-18T12:03:29.2852729Z             {
2026-06-18T12:03:29.2853129Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2853425Z               "line": 1320
2026-06-18T12:03:29.2853709Z             },
2026-06-18T12:03:29.2853990Z             {
2026-06-18T12:03:29.2854399Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2854709Z               "line": 1336
2026-06-18T12:03:29.2854996Z             },
2026-06-18T12:03:29.2855277Z             {
2026-06-18T12:03:29.2855687Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2855992Z               "line": 1352
2026-06-18T12:03:29.2856287Z             },
2026-06-18T12:03:29.2856567Z             {
2026-06-18T12:03:29.2856976Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2857271Z               "line": 1374
2026-06-18T12:03:29.2857548Z             },
2026-06-18T12:03:29.2857825Z             {
2026-06-18T12:03:29.2858239Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2858544Z               "line": 1679
2026-06-18T12:03:29.2858826Z             },
2026-06-18T12:03:29.2859185Z             {
2026-06-18T12:03:29.2859561Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T12:03:29.2859862Z               "line": 130
2026-06-18T12:03:29.2860144Z             },
2026-06-18T12:03:29.2860429Z             {
2026-06-18T12:03:29.2860816Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T12:03:29.2861111Z               "line": 167
2026-06-18T12:03:29.2861407Z             },
2026-06-18T12:03:29.2861684Z             {
2026-06-18T12:03:29.2862060Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T12:03:29.2862351Z               "line": 175
2026-06-18T12:03:29.2862641Z             },
2026-06-18T12:03:29.2862928Z             {
2026-06-18T12:03:29.2863299Z               "path": "crates/spt-proto/src/addr.rs",
2026-06-18T12:03:29.2863609Z               "line": 183
2026-06-18T12:03:29.2863896Z             },
2026-06-18T12:03:29.2864175Z             {
2026-06-18T12:03:29.2864536Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.2864846Z               "line": 896
2026-06-18T12:03:29.2865128Z             }
2026-06-18T12:03:29.2865413Z           ]
2026-06-18T12:03:29.2865694Z         }
2026-06-18T12:03:29.2865980Z       }
2026-06-18T12:03:29.2866266Z     },
2026-06-18T12:03:29.2866542Z     {
2026-06-18T12:03:29.2866852Z       "id": "REQ-INST-11",
2026-06-18T12:03:29.2867550Z       "title": "spt rename <id> rippled to all instances (collision-checked, 6.5-reconciled)",
2026-06-18T12:03:29.2867975Z       "requiredStages": [
2026-06-18T12:03:29.2868266Z         "impl",
2026-06-18T12:03:29.2868537Z         "unit"
2026-06-18T12:03:29.2868818Z       ],
2026-06-18T12:03:29.2869172Z       "stages": {
2026-06-18T12:03:29.2869475Z         "doc": {
2026-06-18T12:03:29.2869797Z           "complete": false,
2026-06-18T12:03:29.2870098Z           "evidence": []
2026-06-18T12:03:29.2870484Z         },
2026-06-18T12:03:29.2870765Z         "impl": {
2026-06-18T12:03:29.2871075Z           "complete": true,
2026-06-18T12:03:29.2871371Z           "evidence": [
2026-06-18T12:03:29.2871657Z             {
2026-06-18T12:03:29.2872067Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2872362Z               "line": 514
2026-06-18T12:03:29.2872643Z             },
2026-06-18T12:03:29.2872930Z             {
2026-06-18T12:03:29.2873348Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2873653Z               "line": 297
2026-06-18T12:03:29.2873945Z             },
2026-06-18T12:03:29.2874235Z             {
2026-06-18T12:03:29.2874616Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T12:03:29.2874919Z               "line": 59
2026-06-18T12:03:29.2875205Z             },
2026-06-18T12:03:29.2875482Z             {
2026-06-18T12:03:29.2875830Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2876150Z               "line": 5130
2026-06-18T12:03:29.2876440Z             },
2026-06-18T12:03:29.2876731Z             {
2026-06-18T12:03:29.2877078Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2877375Z               "line": 6976
2026-06-18T12:03:29.2877660Z             }
2026-06-18T12:03:29.2877944Z           ]
2026-06-18T12:03:29.2878220Z         },
2026-06-18T12:03:29.2878511Z         "int": {
2026-06-18T12:03:29.2878826Z           "complete": false,
2026-06-18T12:03:29.2879213Z           "evidence": []
2026-06-18T12:03:29.2879499Z         },
2026-06-18T12:03:29.2879790Z         "unit": {
2026-06-18T12:03:29.2880092Z           "complete": true,
2026-06-18T12:03:29.2880390Z           "evidence": [
2026-06-18T12:03:29.2880667Z             {
2026-06-18T12:03:29.2881078Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2881378Z               "line": 1479
2026-06-18T12:03:29.2881664Z             },
2026-06-18T12:03:29.2881955Z             {
2026-06-18T12:03:29.2882366Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2882671Z               "line": 1512
2026-06-18T12:03:29.2882960Z             },
2026-06-18T12:03:29.2883236Z             {
2026-06-18T12:03:29.2883662Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2883966Z               "line": 527
2026-06-18T12:03:29.2884257Z             },
2026-06-18T12:03:29.2884529Z             {
2026-06-18T12:03:29.2884925Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T12:03:29.2885253Z               "line": 160
2026-06-18T12:03:29.2885536Z             },
2026-06-18T12:03:29.2885827Z             {
2026-06-18T12:03:29.2886214Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T12:03:29.2886519Z               "line": 190
2026-06-18T12:03:29.2886810Z             },
2026-06-18T12:03:29.2887100Z             {
2026-06-18T12:03:29.2887483Z               "path": "crates/spt-store/src/rename.rs",
2026-06-18T12:03:29.2887778Z               "line": 225
2026-06-18T12:03:29.2888062Z             },
2026-06-18T12:03:29.2888351Z             {
2026-06-18T12:03:29.2888699Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2889076Z               "line": 7816
2026-06-18T12:03:29.2889352Z             }
2026-06-18T12:03:29.2889624Z           ]
2026-06-18T12:03:29.2889900Z         }
2026-06-18T12:03:29.2890186Z       }
2026-06-18T12:03:29.2890455Z     },
2026-06-18T12:03:29.2890739Z     {
2026-06-18T12:03:29.2891061Z       "id": "REQ-INST-12",
2026-06-18T12:03:29.2892016Z       "title": "Endpoint visibility per-(endpoint,subnet): excluded semantics, OR-of-defaults + override, gates sync",
2026-06-18T12:03:29.2892454Z       "requiredStages": [
2026-06-18T12:03:29.2892749Z         "impl",
2026-06-18T12:03:29.2893040Z         "unit"
2026-06-18T12:03:29.2893317Z       ],
2026-06-18T12:03:29.2893611Z       "stages": {
2026-06-18T12:03:29.2893907Z         "doc": {
2026-06-18T12:03:29.2894217Z           "complete": false,
2026-06-18T12:03:29.2894627Z           "evidence": []
2026-06-18T12:03:29.2894913Z         },
2026-06-18T12:03:29.2895200Z         "impl": {
2026-06-18T12:03:29.2895505Z           "complete": true,
2026-06-18T12:03:29.2895813Z           "evidence": [
2026-06-18T12:03:29.2896091Z             {
2026-06-18T12:03:29.2896502Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2896812Z               "line": 566
2026-06-18T12:03:29.2897089Z             },
2026-06-18T12:03:29.2897370Z             {
2026-06-18T12:03:29.2897771Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2898081Z               "line": 659
2026-06-18T12:03:29.2898372Z             },
2026-06-18T12:03:29.2898646Z             {
2026-06-18T12:03:29.2899131Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2899436Z               "line": 739
2026-06-18T12:03:29.2899737Z             },
2026-06-18T12:03:29.2900013Z             {
2026-06-18T12:03:29.2900395Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2900719Z               "line": 96
2026-06-18T12:03:29.2901001Z             },
2026-06-18T12:03:29.2901285Z             {
2026-06-18T12:03:29.2901655Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2901960Z               "line": 269
2026-06-18T12:03:29.2902242Z             },
2026-06-18T12:03:29.2902528Z             {
2026-06-18T12:03:29.2902942Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2903243Z               "line": 148
2026-06-18T12:03:29.2903539Z             }
2026-06-18T12:03:29.2903825Z           ]
2026-06-18T12:03:29.2904119Z         },
2026-06-18T12:03:29.2904404Z         "int": {
2026-06-18T12:03:29.2904719Z           "complete": false,
2026-06-18T12:03:29.2905015Z           "evidence": []
2026-06-18T12:03:29.2905301Z         },
2026-06-18T12:03:29.2905592Z         "unit": {
2026-06-18T12:03:29.2909753Z           "complete": true,
2026-06-18T12:03:29.2910101Z           "evidence": [
2026-06-18T12:03:29.2910397Z             {
2026-06-18T12:03:29.2910816Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2911126Z               "line": 1554
2026-06-18T12:03:29.2911412Z             },
2026-06-18T12:03:29.2911692Z             {
2026-06-18T12:03:29.2912109Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2912424Z               "line": 1577
2026-06-18T12:03:29.2912710Z             },
2026-06-18T12:03:29.2913001Z             {
2026-06-18T12:03:29.2913407Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2913722Z               "line": 1614
2026-06-18T12:03:29.2914027Z             },
2026-06-18T12:03:29.2914313Z             {
2026-06-18T12:03:29.2914712Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.2915013Z               "line": 457
2026-06-18T12:03:29.2915293Z             },
2026-06-18T12:03:29.2915594Z             {
2026-06-18T12:03:29.2915996Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2916311Z               "line": 185
2026-06-18T12:03:29.2916596Z             },
2026-06-18T12:03:29.2916890Z             {
2026-06-18T12:03:29.2917298Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2917603Z               "line": 206
2026-06-18T12:03:29.2917894Z             },
2026-06-18T12:03:29.2918175Z             {
2026-06-18T12:03:29.2918591Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2918882Z               "line": 232
2026-06-18T12:03:29.2919439Z             }
2026-06-18T12:03:29.2919757Z           ]
2026-06-18T12:03:29.2920041Z         }
2026-06-18T12:03:29.2920341Z       }
2026-06-18T12:03:29.2920609Z     },
2026-06-18T12:03:29.2920895Z     {
2026-06-18T12:03:29.2921209Z       "id": "REQ-INST-13",
2026-06-18T12:03:29.2921797Z       "title": "Subnet-exclusive sync + per-endpoint subnet-membership list",
2026-06-18T12:03:29.2922121Z       "requiredStages": [
2026-06-18T12:03:29.2922405Z         "impl",
2026-06-18T12:03:29.2922804Z         "unit"
2026-06-18T12:03:29.2923090Z       ],
2026-06-18T12:03:29.2923391Z       "stages": {
2026-06-18T12:03:29.2923663Z         "doc": {
2026-06-18T12:03:29.2923977Z           "complete": false,
2026-06-18T12:03:29.2924282Z           "evidence": []
2026-06-18T12:03:29.2924568Z         },
2026-06-18T12:03:29.2924853Z         "impl": {
2026-06-18T12:03:29.2925158Z           "complete": true,
2026-06-18T12:03:29.2925462Z           "evidence": [
2026-06-18T12:03:29.2925735Z             {
2026-06-18T12:03:29.2926125Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.2926430Z               "line": 100
2026-06-18T12:03:29.2926708Z             },
2026-06-18T12:03:29.2926998Z             {
2026-06-18T12:03:29.2927408Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2927710Z               "line": 171
2026-06-18T12:03:29.2927996Z             }
2026-06-18T12:03:29.2928283Z           ]
2026-06-18T12:03:29.2928574Z         },
2026-06-18T12:03:29.2928860Z         "int": {
2026-06-18T12:03:29.2929265Z           "complete": false,
2026-06-18T12:03:29.2929569Z           "evidence": []
2026-06-18T12:03:29.2929851Z         },
2026-06-18T12:03:29.2930143Z         "unit": {
2026-06-18T12:03:29.2930451Z           "complete": true,
2026-06-18T12:03:29.2930759Z           "evidence": [
2026-06-18T12:03:29.2931036Z             {
2026-06-18T12:03:29.2931436Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2931737Z               "line": 261
2026-06-18T12:03:29.2932028Z             },
2026-06-18T12:03:29.2932305Z             {
2026-06-18T12:03:29.2932724Z               "path": "crates/spt-store/src/visibility.rs",
2026-06-18T12:03:29.2933031Z               "line": 279
2026-06-18T12:03:29.2933316Z             }
2026-06-18T12:03:29.2933607Z           ]
2026-06-18T12:03:29.2933883Z         }
2026-06-18T12:03:29.2934164Z       }
2026-06-18T12:03:29.2934436Z     },
2026-06-18T12:03:29.2934718Z     {
2026-06-18T12:03:29.2935032Z       "id": "REQ-INST-14",
2026-06-18T12:03:29.2936296Z       "title": "Resource advertisement (subnet resource registry): free-text blurb, both-authored, registry projection, visibility/whitelist-gated",
2026-06-18T12:03:29.2936620Z       "requiredStages": [
2026-06-18T12:03:29.2936900Z         "doc",
2026-06-18T12:03:29.2937192Z         "impl",
2026-06-18T12:03:29.2937479Z         "unit"
2026-06-18T12:03:29.2937765Z       ],
2026-06-18T12:03:29.2938068Z       "stages": {
2026-06-18T12:03:29.2938346Z         "doc": {
2026-06-18T12:03:29.2938676Z           "complete": true,
2026-06-18T12:03:29.2939053Z           "evidence": [
2026-06-18T12:03:29.2939344Z             {
2026-06-18T12:03:29.2939668Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.2939969Z               "line": 570
2026-06-18T12:03:29.2940259Z             },
2026-06-18T12:03:29.2940540Z             {
2026-06-18T12:03:29.2940882Z               "path": "docs/STORAGE.md",
2026-06-18T12:03:29.2941180Z               "line": 49
2026-06-18T12:03:29.2941476Z             }
2026-06-18T12:03:29.2941752Z           ]
2026-06-18T12:03:29.2942044Z         },
2026-06-18T12:03:29.2942339Z         "impl": {
2026-06-18T12:03:29.2942635Z           "complete": true,
2026-06-18T12:03:29.2942936Z           "evidence": [
2026-06-18T12:03:29.2943223Z             {
2026-06-18T12:03:29.2943666Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2943967Z               "line": 410
2026-06-18T12:03:29.2944253Z             },
2026-06-18T12:03:29.2944529Z             {
2026-06-18T12:03:29.2945058Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2945354Z               "line": 367
2026-06-18T12:03:29.2945640Z             },
2026-06-18T12:03:29.2945926Z             {
2026-06-18T12:03:29.2946301Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.2946606Z               "line": 281
2026-06-18T12:03:29.2946903Z             },
2026-06-18T12:03:29.2947180Z             {
2026-06-18T12:03:29.2947681Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2947977Z               "line": 1465
2026-06-18T12:03:29.2948272Z             }
2026-06-18T12:03:29.2948552Z           ]
2026-06-18T12:03:29.2948845Z         },
2026-06-18T12:03:29.2949212Z         "int": {
2026-06-18T12:03:29.2949531Z           "complete": false,
2026-06-18T12:03:29.2949831Z           "evidence": []
2026-06-18T12:03:29.2950108Z         },
2026-06-18T12:03:29.2950400Z         "unit": {
2026-06-18T12:03:29.2950709Z           "complete": true,
2026-06-18T12:03:29.2951028Z           "evidence": [
2026-06-18T12:03:29.2951324Z             {
2026-06-18T12:03:29.2951755Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2952055Z               "line": 1163
2026-06-18T12:03:29.2952336Z             },
2026-06-18T12:03:29.2952623Z             {
2026-06-18T12:03:29.2953033Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2953333Z               "line": 944
2026-06-18T12:03:29.2953614Z             },
2026-06-18T12:03:29.2953895Z             {
2026-06-18T12:03:29.2954298Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.2954603Z               "line": 1205
2026-06-18T12:03:29.2954884Z             },
2026-06-18T12:03:29.2955175Z             {
2026-06-18T12:03:29.2955556Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.2955866Z               "line": 633
2026-06-18T12:03:29.2956148Z             },
2026-06-18T12:03:29.2956443Z             {
2026-06-18T12:03:29.2956796Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2957110Z               "line": 7892
2026-06-18T12:03:29.2957392Z             }
2026-06-18T12:03:29.2957668Z           ]
2026-06-18T12:03:29.2957955Z         }
2026-06-18T12:03:29.2958232Z       }
2026-06-18T12:03:29.2958512Z     },
2026-06-18T12:03:29.2958788Z     {
2026-06-18T12:03:29.2959188Z       "id": "REQ-INST-15",
2026-06-18T12:03:29.2961551Z       "title": "Immutable home subnet (assigned at creation: auto-if-one/ask-if-many) + spt fork (cross-subnet clone to a new identity, copy-then-diverge, not re-home); adapter chosen at creation from registered hostable adapters, changed only via launch/resume-under-new (ADR-0010)",
2026-06-18T12:03:29.2961889Z       "requiredStages": [
2026-06-18T12:03:29.2962183Z         "doc",
2026-06-18T12:03:29.2962473Z         "impl",
2026-06-18T12:03:29.2962760Z         "unit"
2026-06-18T12:03:29.2963036Z       ],
2026-06-18T12:03:29.2963321Z       "stages": {
2026-06-18T12:03:29.2963617Z         "doc": {
2026-06-18T12:03:29.2963932Z           "complete": true,
2026-06-18T12:03:29.2964232Z           "evidence": [
2026-06-18T12:03:29.2964517Z             {
2026-06-18T12:03:29.2965083Z               "path": "docs/adr/0010-immutable-home-subnet-fork-not-rehome.md",
2026-06-18T12:03:29.2965378Z               "line": 3
2026-06-18T12:03:29.2965669Z             }
2026-06-18T12:03:29.2965951Z           ]
2026-06-18T12:03:29.2966227Z         },
2026-06-18T12:03:29.2966537Z         "impl": {
2026-06-18T12:03:29.2966847Z           "complete": true,
2026-06-18T12:03:29.2967148Z           "evidence": [
2026-06-18T12:03:29.2967431Z             {
2026-06-18T12:03:29.2967862Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.2968167Z               "line": 353
2026-06-18T12:03:29.2968448Z             },
2026-06-18T12:03:29.2968728Z             {
2026-06-18T12:03:29.2969177Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.2969478Z               "line": 60
2026-06-18T12:03:29.2969871Z             },
2026-06-18T12:03:29.2970147Z             {
2026-06-18T12:03:29.2970580Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2970876Z               "line": 368
2026-06-18T12:03:29.2971167Z             },
2026-06-18T12:03:29.2971448Z             {
2026-06-18T12:03:29.2971873Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2972173Z               "line": 417
2026-06-18T12:03:29.2972572Z             },
2026-06-18T12:03:29.2972856Z             {
2026-06-18T12:03:29.2973232Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2973533Z               "line": 19
2026-06-18T12:03:29.2973819Z             },
2026-06-18T12:03:29.2974101Z             {
2026-06-18T12:03:29.2974477Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2974782Z               "line": 70
2026-06-18T12:03:29.2975063Z             },
2026-06-18T12:03:29.2975342Z             {
2026-06-18T12:03:29.2975723Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2976018Z               "line": 96
2026-06-18T12:03:29.2976306Z             },
2026-06-18T12:03:29.2976577Z             {
2026-06-18T12:03:29.2976968Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2977263Z               "line": 121
2026-06-18T12:03:29.2977545Z             },
2026-06-18T12:03:29.2977832Z             {
2026-06-18T12:03:29.2978207Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2978517Z               "line": 172
2026-06-18T12:03:29.2978803Z             },
2026-06-18T12:03:29.2979170Z             {
2026-06-18T12:03:29.2979551Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.2979861Z               "line": 174
2026-06-18T12:03:29.2980156Z             },
2026-06-18T12:03:29.2980440Z             {
2026-06-18T12:03:29.2980797Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2981107Z               "line": 1357
2026-06-18T12:03:29.2981398Z             }
2026-06-18T12:03:29.2981684Z           ]
2026-06-18T12:03:29.2981966Z         },
2026-06-18T12:03:29.2982248Z         "int": {
2026-06-18T12:03:29.2982563Z           "complete": false,
2026-06-18T12:03:29.2982873Z           "evidence": []
2026-06-18T12:03:29.2983156Z         },
2026-06-18T12:03:29.2983444Z         "unit": {
2026-06-18T12:03:29.2983764Z           "complete": true,
2026-06-18T12:03:29.2984064Z           "evidence": [
2026-06-18T12:03:29.2984351Z             {
2026-06-18T12:03:29.2984761Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2985071Z               "line": 577
2026-06-18T12:03:29.2985362Z             },
2026-06-18T12:03:29.2985642Z             {
2026-06-18T12:03:29.2986069Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.2986369Z               "line": 638
2026-06-18T12:03:29.2986651Z             },
2026-06-18T12:03:29.2986936Z             {
2026-06-18T12:03:29.2987308Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2987619Z               "line": 213
2026-06-18T12:03:29.2987895Z             },
2026-06-18T12:03:29.2988182Z             {
2026-06-18T12:03:29.2988561Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2988857Z               "line": 249
2026-06-18T12:03:29.2989214Z             },
2026-06-18T12:03:29.2989510Z             {
2026-06-18T12:03:29.2989888Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2990183Z               "line": 262
2026-06-18T12:03:29.2990469Z             },
2026-06-18T12:03:29.2990750Z             {
2026-06-18T12:03:29.2991128Z               "path": "crates/spt-store/src/home.rs",
2026-06-18T12:03:29.2991433Z               "line": 338
2026-06-18T12:03:29.2991729Z             },
2026-06-18T12:03:29.2992020Z             {
2026-06-18T12:03:29.2992406Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.2992707Z               "line": 659
2026-06-18T12:03:29.2992997Z             },
2026-06-18T12:03:29.2993395Z             {
2026-06-18T12:03:29.2993745Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2994053Z               "line": 7829
2026-06-18T12:03:29.2994348Z             },
2026-06-18T12:03:29.2994629Z             {
2026-06-18T12:03:29.2994993Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.2995288Z               "line": 9607
2026-06-18T12:03:29.2995579Z             }
2026-06-18T12:03:29.2995971Z           ]
2026-06-18T12:03:29.2996259Z         }
2026-06-18T12:03:29.2996547Z       }
2026-06-18T12:03:29.2996829Z     },
2026-06-18T12:03:29.2997116Z     {
2026-06-18T12:03:29.2997416Z       "id": "REQ-INST-2",
2026-06-18T12:03:29.2997821Z       "title": "Per-node files, synced Psyche mind",
2026-06-18T12:03:29.2998131Z       "requiredStages": [
2026-06-18T12:03:29.2998422Z         "impl",
2026-06-18T12:03:29.2998717Z         "unit"
2026-06-18T12:03:29.2999074Z       ],
2026-06-18T12:03:29.2999374Z       "stages": {
2026-06-18T12:03:29.2999666Z         "doc": {
2026-06-18T12:03:29.2999981Z           "complete": false,
2026-06-18T12:03:29.3000285Z           "evidence": []
2026-06-18T12:03:29.3000576Z         },
2026-06-18T12:03:29.3000863Z         "impl": {
2026-06-18T12:03:29.3001169Z           "complete": true,
2026-06-18T12:03:29.3001476Z           "evidence": [
2026-06-18T12:03:29.3001755Z             {
2026-06-18T12:03:29.3002170Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3002485Z               "line": 108
2026-06-18T12:03:29.3002772Z             },
2026-06-18T12:03:29.3003063Z             {
2026-06-18T12:03:29.3003439Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.3003740Z               "line": 28
2026-06-18T12:03:29.3004027Z             },
2026-06-18T12:03:29.3004310Z             {
2026-06-18T12:03:29.3004690Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.3004986Z               "line": 74
2026-06-18T12:03:29.3005262Z             },
2026-06-18T12:03:29.3005548Z             {
2026-06-18T12:03:29.3005940Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.3006235Z               "line": 96
2026-06-18T12:03:29.3006526Z             },
2026-06-18T12:03:29.3006805Z             {
2026-06-18T12:03:29.3007199Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.3007499Z               "line": 86
2026-06-18T12:03:29.3007790Z             },
2026-06-18T12:03:29.3008080Z             {
2026-06-18T12:03:29.3008468Z               "path": "crates/spt-live/src/signoff.rs",
2026-06-18T12:03:29.3008778Z               "line": 118
2026-06-18T12:03:29.3009145Z             }
2026-06-18T12:03:29.3009432Z           ]
2026-06-18T12:03:29.3009720Z         },
2026-06-18T12:03:29.3010001Z         "int": {
2026-06-18T12:03:29.3010306Z           "complete": false,
2026-06-18T12:03:29.3010611Z           "evidence": []
2026-06-18T12:03:29.3010907Z         },
2026-06-18T12:03:29.3011189Z         "unit": {
2026-06-18T12:03:29.3011503Z           "complete": true,
2026-06-18T12:03:29.3011808Z           "evidence": [
2026-06-18T12:03:29.3012088Z             {
2026-06-18T12:03:29.3012468Z               "path": "crates/spt-live/src/ingest.rs",
2026-06-18T12:03:29.3012769Z               "line": 250
2026-06-18T12:03:29.3013055Z             },
2026-06-18T12:03:29.3013341Z             {
2026-06-18T12:03:29.3013727Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.3014022Z               "line": 280
2026-06-18T12:03:29.3014314Z             }
2026-06-18T12:03:29.3014606Z           ]
2026-06-18T12:03:29.3014880Z         }
2026-06-18T12:03:29.3015178Z       }
2026-06-18T12:03:29.3015459Z     },
2026-06-18T12:03:29.3015750Z     {
2026-06-18T12:03:29.3016064Z       "id": "REQ-INST-3",
2026-06-18T12:03:29.3016561Z       "title": "Dormant (warm) / suspended (cold) resting states",
2026-06-18T12:03:29.3016890Z       "requiredStages": [
2026-06-18T12:03:29.3017177Z         "doc",
2026-06-18T12:03:29.3017461Z         "impl",
2026-06-18T12:03:29.3017851Z         "unit"
2026-06-18T12:03:29.3018136Z       ],
2026-06-18T12:03:29.3018432Z       "stages": {
2026-06-18T12:03:29.3018718Z         "doc": {
2026-06-18T12:03:29.3019113Z           "complete": true,
2026-06-18T12:03:29.3019409Z           "evidence": [
2026-06-18T12:03:29.3019696Z             {
2026-06-18T12:03:29.3020067Z               "path": "docs/DORMANCY-BUDGET.md",
2026-06-18T12:03:29.3020362Z               "line": 3
2026-06-18T12:03:29.3020758Z             }
2026-06-18T12:03:29.3021044Z           ]
2026-06-18T12:03:29.3021325Z         },
2026-06-18T12:03:29.3021616Z         "impl": {
2026-06-18T12:03:29.3021922Z           "complete": true,
2026-06-18T12:03:29.3022217Z           "evidence": [
2026-06-18T12:03:29.3022506Z             {
2026-06-18T12:03:29.3022909Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T12:03:29.3023200Z               "line": 59
2026-06-18T12:03:29.3023481Z             },
2026-06-18T12:03:29.3023762Z             {
2026-06-18T12:03:29.3024178Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.3024483Z               "line": 480
2026-06-18T12:03:29.3024755Z             },
2026-06-18T12:03:29.3025041Z             {
2026-06-18T12:03:29.3025445Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3025748Z               "line": 254
2026-06-18T12:03:29.3026038Z             },
2026-06-18T12:03:29.3026324Z             {
2026-06-18T12:03:29.3026740Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3027050Z               "line": 384
2026-06-18T12:03:29.3027341Z             },
2026-06-18T12:03:29.3027627Z             {
2026-06-18T12:03:29.3028035Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3028329Z               "line": 418
2026-06-18T12:03:29.3028615Z             },
2026-06-18T12:03:29.3028891Z             {
2026-06-18T12:03:29.3029426Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-18T12:03:29.3029736Z               "line": 74
2026-06-18T12:03:29.3030026Z             },
2026-06-18T12:03:29.3030317Z             {
2026-06-18T12:03:29.3030745Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3031050Z               "line": 234
2026-06-18T12:03:29.3031341Z             },
2026-06-18T12:03:29.3031628Z             {
2026-06-18T12:03:29.3032061Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3032366Z               "line": 396
2026-06-18T12:03:29.3032667Z             },
2026-06-18T12:03:29.3032957Z             {
2026-06-18T12:03:29.3033359Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3033659Z               "line": 45
2026-06-18T12:03:29.3033936Z             },
2026-06-18T12:03:29.3034223Z             {
2026-06-18T12:03:29.3034618Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3034909Z               "line": 114
2026-06-18T12:03:29.3035185Z             },
2026-06-18T12:03:29.3035481Z             {
2026-06-18T12:03:29.3035881Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3036174Z               "line": 152
2026-06-18T12:03:29.3036461Z             },
2026-06-18T12:03:29.3036747Z             {
2026-06-18T12:03:29.3037151Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3037443Z               "line": 168
2026-06-18T12:03:29.3037737Z             },
2026-06-18T12:03:29.3038029Z             {
2026-06-18T12:03:29.3038433Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3038731Z               "line": 178
2026-06-18T12:03:29.3039365Z             },
2026-06-18T12:03:29.3039815Z             {
2026-06-18T12:03:29.3040229Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3040535Z               "line": 210
2026-06-18T12:03:29.3040821Z             },
2026-06-18T12:03:29.3041112Z             {
2026-06-18T12:03:29.3041516Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3041996Z               "line": 287
2026-06-18T12:03:29.3042282Z             },
2026-06-18T12:03:29.3042569Z             {
2026-06-18T12:03:29.3042964Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3043270Z               "line": 311
2026-06-18T12:03:29.3043546Z             },
2026-06-18T12:03:29.3043834Z             {
2026-06-18T12:03:29.3044234Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3044664Z               "line": 389
2026-06-18T12:03:29.3044960Z             },
2026-06-18T12:03:29.3045226Z             {
2026-06-18T12:03:29.3045632Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3045938Z               "line": 438
2026-06-18T12:03:29.3046219Z             },
2026-06-18T12:03:29.3046503Z             {
2026-06-18T12:03:29.3046911Z               "path": "crates/spt-daemon/tests/budget.rs",
2026-06-18T12:03:29.3047217Z               "line": 37
2026-06-18T12:03:29.3047493Z             },
2026-06-18T12:03:29.3047788Z             {
2026-06-18T12:03:29.3048185Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3048490Z               "line": 62
2026-06-18T12:03:29.3048777Z             },
2026-06-18T12:03:29.3049278Z             {
2026-06-18T12:03:29.3049663Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.3049968Z               "line": 267
2026-06-18T12:03:29.3050255Z             },
2026-06-18T12:03:29.3050541Z             {
2026-06-18T12:03:29.3050903Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3051199Z               "line": 1736
2026-06-18T12:03:29.3051485Z             }
2026-06-18T12:03:29.3051767Z           ]
2026-06-18T12:03:29.3052043Z         },
2026-06-18T12:03:29.3052328Z         "int": {
2026-06-18T12:03:29.3052639Z           "complete": false,
2026-06-18T12:03:29.3052948Z           "evidence": []
2026-06-18T12:03:29.3053224Z         },
2026-06-18T12:03:29.3053520Z         "unit": {
2026-06-18T12:03:29.3053825Z           "complete": true,
2026-06-18T12:03:29.3054125Z           "evidence": [
2026-06-18T12:03:29.3054408Z             {
2026-06-18T12:03:29.3054803Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.3055100Z               "line": 360
2026-06-18T12:03:29.3055381Z             },
2026-06-18T12:03:29.3055667Z             {
2026-06-18T12:03:29.3056072Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3056382Z               "line": 837
2026-06-18T12:03:29.3056678Z             },
2026-06-18T12:03:29.3056963Z             {
2026-06-18T12:03:29.3057380Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3057680Z               "line": 894
2026-06-18T12:03:29.3057971Z             },
2026-06-18T12:03:29.3058262Z             {
2026-06-18T12:03:29.3058658Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.3059046Z               "line": 889
2026-06-18T12:03:29.3059322Z             },
2026-06-18T12:03:29.3059615Z             {
2026-06-18T12:03:29.3060028Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.3060329Z               "line": 1014
2026-06-18T12:03:29.3060625Z             },
2026-06-18T12:03:29.3060906Z             {
2026-06-18T12:03:29.3061331Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3061622Z               "line": 1264
2026-06-18T12:03:29.3061913Z             },
2026-06-18T12:03:29.3062204Z             {
2026-06-18T12:03:29.3062636Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3062960Z               "line": 1405
2026-06-18T12:03:29.3063237Z             },
2026-06-18T12:03:29.3063528Z             {
2026-06-18T12:03:29.3063914Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3064224Z               "line": 449
2026-06-18T12:03:29.3064516Z             },
2026-06-18T12:03:29.3064794Z             {
2026-06-18T12:03:29.3065208Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3065645Z               "line": 485
2026-06-18T12:03:29.3065931Z             },
2026-06-18T12:03:29.3066214Z             {
2026-06-18T12:03:29.3066618Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3066918Z               "line": 540
2026-06-18T12:03:29.3067195Z             },
2026-06-18T12:03:29.3067476Z             {
2026-06-18T12:03:29.3067874Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3068284Z               "line": 697
2026-06-18T12:03:29.3068564Z             },
2026-06-18T12:03:29.3068856Z             {
2026-06-18T12:03:29.3069319Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3069616Z               "line": 931
2026-06-18T12:03:29.3069916Z             },
2026-06-18T12:03:29.3070190Z             {
2026-06-18T12:03:29.3070588Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3070894Z               "line": 945
2026-06-18T12:03:29.3071175Z             },
2026-06-18T12:03:29.3071480Z             {
2026-06-18T12:03:29.3071881Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3072186Z               "line": 1290
2026-06-18T12:03:29.3072468Z             },
2026-06-18T12:03:29.3072754Z             {
2026-06-18T12:03:29.3073134Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.3073435Z               "line": 583
2026-06-18T12:03:29.3073730Z             },
2026-06-18T12:03:29.3074016Z             {
2026-06-18T12:03:29.3074374Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3074674Z               "line": 7853
2026-06-18T12:03:29.3074960Z             }
2026-06-18T12:03:29.3075245Z           ]
2026-06-18T12:03:29.3075524Z         }
2026-06-18T12:03:29.3075810Z       }
2026-06-18T12:03:29.3076091Z     },
2026-06-18T12:03:29.3076374Z     {
2026-06-18T12:03:29.3076679Z       "id": "REQ-INST-4",
2026-06-18T12:03:29.3077241Z       "title": "active to dormant/suspended fires a transition echo commune",
2026-06-18T12:03:29.3077566Z       "requiredStages": [
2026-06-18T12:03:29.3077861Z         "impl",
2026-06-18T12:03:29.3078145Z         "unit"
2026-06-18T12:03:29.3078420Z       ],
2026-06-18T12:03:29.3078715Z       "stages": {
2026-06-18T12:03:29.3079072Z         "doc": {
2026-06-18T12:03:29.3079397Z           "complete": false,
2026-06-18T12:03:29.3079702Z           "evidence": []
2026-06-18T12:03:29.3079988Z         },
2026-06-18T12:03:29.3080269Z         "impl": {
2026-06-18T12:03:29.3080589Z           "complete": true,
2026-06-18T12:03:29.3080897Z           "evidence": [
2026-06-18T12:03:29.3081178Z             {
2026-06-18T12:03:29.3081583Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3081879Z               "line": 385
2026-06-18T12:03:29.3082164Z             },
2026-06-18T12:03:29.3082441Z             {
2026-06-18T12:03:29.3082832Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3083137Z               "line": 202
2026-06-18T12:03:29.3083414Z             },
2026-06-18T12:03:29.3083703Z             {
2026-06-18T12:03:29.3084099Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3084410Z               "line": 234
2026-06-18T12:03:29.3084700Z             },
2026-06-18T12:03:29.3084987Z             {
2026-06-18T12:03:29.3085382Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3085678Z               "line": 274
2026-06-18T12:03:29.3085957Z             }
2026-06-18T12:03:29.3086256Z           ]
2026-06-18T12:03:29.3086537Z         },
2026-06-18T12:03:29.3086847Z         "int": {
2026-06-18T12:03:29.3087152Z           "complete": false,
2026-06-18T12:03:29.3087467Z           "evidence": []
2026-06-18T12:03:29.3087753Z         },
2026-06-18T12:03:29.3088048Z         "unit": {
2026-06-18T12:03:29.3088354Z           "complete": true,
2026-06-18T12:03:29.3088648Z           "evidence": [
2026-06-18T12:03:29.3088937Z             {
2026-06-18T12:03:29.3089409Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3090000Z               "line": 889
2026-06-18T12:03:29.3090281Z             },
2026-06-18T12:03:29.3090558Z             {
2026-06-18T12:03:29.3090954Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3091253Z               "line": 561
2026-06-18T12:03:29.3091547Z             },
2026-06-18T12:03:29.3091828Z             {
2026-06-18T12:03:29.3092223Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3092639Z               "line": 668
2026-06-18T12:03:29.3092930Z             },
2026-06-18T12:03:29.3093215Z             {
2026-06-18T12:03:29.3093608Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3093918Z               "line": 750
2026-06-18T12:03:29.3094206Z             }
2026-06-18T12:03:29.3094487Z           ]
2026-06-18T12:03:29.3094759Z         }
2026-06-18T12:03:29.3095050Z       }
2026-06-18T12:03:29.3095327Z     },
2026-06-18T12:03:29.3095608Z     {
2026-06-18T12:03:29.3095909Z       "id": "REQ-INST-5",
2026-06-18T12:03:29.3096499Z       "title": "Two-tier context sync (live to all, project to same-project)",
2026-06-18T12:03:29.3096825Z       "requiredStages": [
2026-06-18T12:03:29.3097112Z         "impl",
2026-06-18T12:03:29.3097407Z         "unit",
2026-06-18T12:03:29.3097693Z         "int"
2026-06-18T12:03:29.3097979Z       ],
2026-06-18T12:03:29.3098275Z       "stages": {
2026-06-18T12:03:29.3098561Z         "doc": {
2026-06-18T12:03:29.3098875Z           "complete": false,
2026-06-18T12:03:29.3099265Z           "evidence": []
2026-06-18T12:03:29.3099563Z         },
2026-06-18T12:03:29.3099855Z         "impl": {
2026-06-18T12:03:29.3100165Z           "complete": true,
2026-06-18T12:03:29.3100466Z           "evidence": [
2026-06-18T12:03:29.3100746Z             {
2026-06-18T12:03:29.3101156Z               "path": "crates/spt-daemon/src/pump/sync.rs",
2026-06-18T12:03:29.3101452Z               "line": 85
2026-06-18T12:03:29.3101733Z             },
2026-06-18T12:03:29.3102018Z             {
2026-06-18T12:03:29.3102397Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.3102703Z               "line": 68
2026-06-18T12:03:29.3102979Z             },
2026-06-18T12:03:29.3103266Z             {
2026-06-18T12:03:29.3103642Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.3103947Z               "line": 99
2026-06-18T12:03:29.3104239Z             },
2026-06-18T12:03:29.3104507Z             {
2026-06-18T12:03:29.3104882Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.3105191Z               "line": 183
2026-06-18T12:03:29.3105473Z             },
2026-06-18T12:03:29.3105759Z             {
2026-06-18T12:03:29.3106135Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.3106446Z               "line": 314
2026-06-18T12:03:29.3106733Z             }
2026-06-18T12:03:29.3107020Z           ]
2026-06-18T12:03:29.3107309Z         },
2026-06-18T12:03:29.3107599Z         "int": {
2026-06-18T12:03:29.3107905Z           "complete": true,
2026-06-18T12:03:29.3108220Z           "evidence": [
2026-06-18T12:03:29.3108506Z             {
2026-06-18T12:03:29.3108917Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.3109280Z               "line": 156
2026-06-18T12:03:29.3109570Z             },
2026-06-18T12:03:29.3109859Z             {
2026-06-18T12:03:29.3110258Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T12:03:29.3110563Z               "line": 145
2026-06-18T12:03:29.3110849Z             },
2026-06-18T12:03:29.3111130Z             {
2026-06-18T12:03:29.3111541Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3111842Z               "line": 706
2026-06-18T12:03:29.3112128Z             },
2026-06-18T12:03:29.3112411Z             {
2026-06-18T12:03:29.3112819Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3113135Z               "line": 1068
2026-06-18T12:03:29.3113416Z             }
2026-06-18T12:03:29.3113706Z           ]
2026-06-18T12:03:29.3114108Z         },
2026-06-18T12:03:29.3114394Z         "unit": {
2026-06-18T12:03:29.3114709Z           "complete": true,
2026-06-18T12:03:29.3115019Z           "evidence": [
2026-06-18T12:03:29.3115312Z             {
2026-06-18T12:03:29.3115694Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.3115995Z               "line": 552
2026-06-18T12:03:29.3116280Z             },
2026-06-18T12:03:29.3116571Z             {
2026-06-18T12:03:29.3117081Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.3117391Z               "line": 595
2026-06-18T12:03:29.3117685Z             },
2026-06-18T12:03:29.3117965Z             {
2026-06-18T12:03:29.3118356Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T12:03:29.3118661Z               "line": 219
2026-06-18T12:03:29.3119019Z             }
2026-06-18T12:03:29.3119300Z           ]
2026-06-18T12:03:29.3119605Z         }
2026-06-18T12:03:29.3123700Z       }
2026-06-18T12:03:29.3124034Z     },
2026-06-18T12:03:29.3124315Z     {
2026-06-18T12:03:29.3124630Z       "id": "REQ-INST-6",
2026-06-18T12:03:29.3125260Z       "title": "Deferred messages not delivered to dormant/suspended instances",
2026-06-18T12:03:29.3125579Z       "requiredStages": [
2026-06-18T12:03:29.3125862Z         "impl",
2026-06-18T12:03:29.3126158Z         "unit",
2026-06-18T12:03:29.3126444Z         "int"
2026-06-18T12:03:29.3126731Z       ],
2026-06-18T12:03:29.3127022Z       "stages": {
2026-06-18T12:03:29.3127326Z         "doc": {
2026-06-18T12:03:29.3127632Z           "complete": true,
2026-06-18T12:03:29.3127937Z           "evidence": [
2026-06-18T12:03:29.3128227Z             {
2026-06-18T12:03:29.3128559Z               "path": "docs/DEFERRED.md",
2026-06-18T12:03:29.3128864Z               "line": 13
2026-06-18T12:03:29.3129231Z             }
2026-06-18T12:03:29.3129522Z           ]
2026-06-18T12:03:29.3129794Z         },
2026-06-18T12:03:29.3130085Z         "impl": {
2026-06-18T12:03:29.3130395Z           "complete": true,
2026-06-18T12:03:29.3130691Z           "evidence": [
2026-06-18T12:03:29.3130979Z             {
2026-06-18T12:03:29.3131397Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.3131694Z               "line": 391
2026-06-18T12:03:29.3131965Z             },
2026-06-18T12:03:29.3132240Z             {
2026-06-18T12:03:29.3132662Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T12:03:29.3132962Z               "line": 27
2026-06-18T12:03:29.3133253Z             },
2026-06-18T12:03:29.3133532Z             {
2026-06-18T12:03:29.3133945Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T12:03:29.3134246Z               "line": 73
2026-06-18T12:03:29.3134536Z             },
2026-06-18T12:03:29.3134822Z             {
2026-06-18T12:03:29.3135228Z               "path": "crates/spt-daemon/src/resthost.rs",
2026-06-18T12:03:29.3135529Z               "line": 182
2026-06-18T12:03:29.3135810Z             },
2026-06-18T12:03:29.3136101Z             {
2026-06-18T12:03:29.3136514Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3136819Z               "line": 426
2026-06-18T12:03:29.3137101Z             },
2026-06-18T12:03:29.3137396Z             {
2026-06-18T12:03:29.3137773Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-18T12:03:29.3138074Z               "line": 31
2026-06-18T12:03:29.3138354Z             },
2026-06-18T12:03:29.3138639Z             {
2026-06-18T12:03:29.3139109Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.3139415Z               "line": 202
2026-06-18T12:03:29.3139701Z             },
2026-06-18T12:03:29.3139992Z             {
2026-06-18T12:03:29.3140369Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.3140674Z               "line": 83
2026-06-18T12:03:29.3140960Z             },
2026-06-18T12:03:29.3141232Z             {
2026-06-18T12:03:29.3141583Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3141876Z               "line": 1737
2026-06-18T12:03:29.3142339Z             },
2026-06-18T12:03:29.3142625Z             {
2026-06-18T12:03:29.3142996Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.3143301Z               "line": 179
2026-06-18T12:03:29.3143593Z             },
2026-06-18T12:03:29.3143885Z             {
2026-06-18T12:03:29.3144244Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.3144553Z               "line": 215
2026-06-18T12:03:29.3144934Z             }
2026-06-18T12:03:29.3145225Z           ]
2026-06-18T12:03:29.3145516Z         },
2026-06-18T12:03:29.3145802Z         "int": {
2026-06-18T12:03:29.3146117Z           "complete": true,
2026-06-18T12:03:29.3146423Z           "evidence": [
2026-06-18T12:03:29.3146714Z             {
2026-06-18T12:03:29.3147122Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3147437Z               "line": 720
2026-06-18T12:03:29.3147723Z             },
2026-06-18T12:03:29.3148009Z             {
2026-06-18T12:03:29.3148428Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3148724Z               "line": 1113
2026-06-18T12:03:29.3149095Z             },
2026-06-18T12:03:29.3149375Z             {
2026-06-18T12:03:29.3149736Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.3150046Z               "line": 726
2026-06-18T12:03:29.3150327Z             }
2026-06-18T12:03:29.3150623Z           ]
2026-06-18T12:03:29.3150900Z         },
2026-06-18T12:03:29.3151196Z         "unit": {
2026-06-18T12:03:29.3151497Z           "complete": true,
2026-06-18T12:03:29.3151806Z           "evidence": [
2026-06-18T12:03:29.3152094Z             {
2026-06-18T12:03:29.3152493Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.3152794Z               "line": 661
2026-06-18T12:03:29.3153075Z             },
2026-06-18T12:03:29.3153351Z             {
2026-06-18T12:03:29.3153753Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.3154077Z               "line": 899
2026-06-18T12:03:29.3154359Z             },
2026-06-18T12:03:29.3154642Z             {
2026-06-18T12:03:29.3155036Z               "path": "crates/spt-net/src/net/rest.rs",
2026-06-18T12:03:29.3155332Z               "line": 66
2026-06-18T12:03:29.3155622Z             },
2026-06-18T12:03:29.3155909Z             {
2026-06-18T12:03:29.3156305Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.3156606Z               "line": 297
2026-06-18T12:03:29.3156901Z             },
2026-06-18T12:03:29.3157201Z             {
2026-06-18T12:03:29.3157591Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.3157887Z               "line": 203
2026-06-18T12:03:29.3158167Z             }
2026-06-18T12:03:29.3158459Z           ]
2026-06-18T12:03:29.3158745Z         }
2026-06-18T12:03:29.3159074Z       }
2026-06-18T12:03:29.3159355Z     },
2026-06-18T12:03:29.3159646Z     {
2026-06-18T12:03:29.3159963Z       "id": "REQ-INST-7",
2026-06-18T12:03:29.3160429Z       "title": "Subnet registry + bare-id resolution policy",
2026-06-18T12:03:29.3160758Z       "requiredStages": [
2026-06-18T12:03:29.3161054Z         "impl",
2026-06-18T12:03:29.3161344Z         "unit",
2026-06-18T12:03:29.3161636Z         "int"
2026-06-18T12:03:29.3161922Z       ],
2026-06-18T12:03:29.3162227Z       "stages": {
2026-06-18T12:03:29.3162513Z         "doc": {
2026-06-18T12:03:29.3162840Z           "complete": false,
2026-06-18T12:03:29.3163145Z           "evidence": []
2026-06-18T12:03:29.3163431Z         },
2026-06-18T12:03:29.3163722Z         "impl": {
2026-06-18T12:03:29.3164032Z           "complete": true,
2026-06-18T12:03:29.3164347Z           "evidence": [
2026-06-18T12:03:29.3164624Z             {
2026-06-18T12:03:29.3165029Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.3165327Z               "line": 436
2026-06-18T12:03:29.3165616Z             },
2026-06-18T12:03:29.3165902Z             {
2026-06-18T12:03:29.3166326Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3166740Z               "line": 27
2026-06-18T12:03:29.3167027Z             },
2026-06-18T12:03:29.3167313Z             {
2026-06-18T12:03:29.3167752Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3168056Z               "line": 207
2026-06-18T12:03:29.3168337Z             },
2026-06-18T12:03:29.3168614Z             {
2026-06-18T12:03:29.3169130Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3169553Z               "line": 344
2026-06-18T12:03:29.3169830Z             },
2026-06-18T12:03:29.3170122Z             {
2026-06-18T12:03:29.3170518Z               "path": "crates/spt-net/src/net/ndjson.rs",
2026-06-18T12:03:29.3170819Z               "line": 59
2026-06-18T12:03:29.3171105Z             },
2026-06-18T12:03:29.3171391Z             {
2026-06-18T12:03:29.3171801Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3172096Z               "line": 41
2026-06-18T12:03:29.3172411Z             },
2026-06-18T12:03:29.3172698Z             {
2026-06-18T12:03:29.3173107Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.3173409Z               "line": 27
2026-06-18T12:03:29.3173695Z             },
2026-06-18T12:03:29.3173987Z             {
2026-06-18T12:03:29.3174401Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.3174711Z               "line": 119
2026-06-18T12:03:29.3175006Z             },
2026-06-18T12:03:29.3175283Z             {
2026-06-18T12:03:29.3175687Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.3175995Z               "line": 134
2026-06-18T12:03:29.3176286Z             },
2026-06-18T12:03:29.3176576Z             {
2026-06-18T12:03:29.3176977Z               "path": "crates/spt-store/src/registry.rs",
2026-06-18T12:03:29.3177278Z               "line": 139
2026-06-18T12:03:29.3177558Z             }
2026-06-18T12:03:29.3177840Z           ]
2026-06-18T12:03:29.3178127Z         },
2026-06-18T12:03:29.3178418Z         "int": {
2026-06-18T12:03:29.3178721Z           "complete": true,
2026-06-18T12:03:29.3179103Z           "evidence": [
2026-06-18T12:03:29.3179385Z             {
2026-06-18T12:03:29.3179794Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T12:03:29.3180089Z               "line": 145
2026-06-18T12:03:29.3180372Z             },
2026-06-18T12:03:29.3180663Z             {
2026-06-18T12:03:29.3181064Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3181379Z               "line": 664
2026-06-18T12:03:29.3181655Z             },
2026-06-18T12:03:29.3181947Z             {
2026-06-18T12:03:29.3182347Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3182651Z               "line": 963
2026-06-18T12:03:29.3182933Z             }
2026-06-18T12:03:29.3183216Z           ]
2026-06-18T12:03:29.3183501Z         },
2026-06-18T12:03:29.3183780Z         "unit": {
2026-06-18T12:03:29.3184087Z           "complete": true,
2026-06-18T12:03:29.3184388Z           "evidence": [
2026-06-18T12:03:29.3184679Z             {
2026-06-18T12:03:29.3185114Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3185414Z               "line": 1134
2026-06-18T12:03:29.3185705Z             },
2026-06-18T12:03:29.3185981Z             {
2026-06-18T12:03:29.3186414Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.3186722Z               "line": 1521
2026-06-18T12:03:29.3187022Z             },
2026-06-18T12:03:29.3187308Z             {
2026-06-18T12:03:29.3187724Z               "path": "crates/spt-daemon/tests/replicate.rs",
2026-06-18T12:03:29.3188029Z               "line": 84
2026-06-18T12:03:29.3188311Z             },
2026-06-18T12:03:29.3188601Z             {
2026-06-18T12:03:29.3189086Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3189401Z               "line": 812
2026-06-18T12:03:29.3189682Z             },
2026-06-18T12:03:29.3190087Z             {
2026-06-18T12:03:29.3190497Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3190797Z               "line": 823
2026-06-18T12:03:29.3191093Z             },
2026-06-18T12:03:29.3191378Z             {
2026-06-18T12:03:29.3191775Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3192090Z               "line": 838
2026-06-18T12:03:29.3192362Z             },
2026-06-18T12:03:29.3192653Z             {
2026-06-18T12:03:29.3193174Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.3193480Z               "line": 166
2026-06-18T12:03:29.3193771Z             },
2026-06-18T12:03:29.3194056Z             {
2026-06-18T12:03:29.3194469Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.3194768Z               "line": 181
2026-06-18T12:03:29.3195055Z             },
2026-06-18T12:03:29.3195335Z             {
2026-06-18T12:03:29.3195759Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.3196074Z               "line": 214
2026-06-18T12:03:29.3196356Z             }
2026-06-18T12:03:29.3196648Z           ]
2026-06-18T12:03:29.3196936Z         }
2026-06-18T12:03:29.3197214Z       }
2026-06-18T12:03:29.3197491Z     },
2026-06-18T12:03:29.3197773Z     {
2026-06-18T12:03:29.3198078Z       "id": "REQ-INST-8",
2026-06-18T12:03:29.3198575Z       "title": "Remote-control mode distinct from local operation",
2026-06-18T12:03:29.3198913Z       "requiredStages": [
2026-06-18T12:03:29.3199285Z         "impl",
2026-06-18T12:03:29.3199581Z         "unit",
2026-06-18T12:03:29.3199855Z         "int"
2026-06-18T12:03:29.3200147Z       ],
2026-06-18T12:03:29.3200442Z       "stages": {
2026-06-18T12:03:29.3200713Z         "doc": {
2026-06-18T12:03:29.3201028Z           "complete": false,
2026-06-18T12:03:29.3201333Z           "evidence": []
2026-06-18T12:03:29.3201620Z         },
2026-06-18T12:03:29.3201905Z         "impl": {
2026-06-18T12:03:29.3202222Z           "complete": true,
2026-06-18T12:03:29.3202532Z           "evidence": [
2026-06-18T12:03:29.3202804Z             {
2026-06-18T12:03:29.3203214Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T12:03:29.3203519Z               "line": 104
2026-06-18T12:03:29.3203800Z             },
2026-06-18T12:03:29.3204087Z             {
2026-06-18T12:03:29.3204482Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T12:03:29.3204787Z               "line": 299
2026-06-18T12:03:29.3205071Z             },
2026-06-18T12:03:29.3205357Z             {
2026-06-18T12:03:29.3205756Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T12:03:29.3206062Z               "line": 339
2026-06-18T12:03:29.3206348Z             },
2026-06-18T12:03:29.3206639Z             {
2026-06-18T12:03:29.3207044Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.3207349Z               "line": 62
2026-06-18T12:03:29.3207637Z             }
2026-06-18T12:03:29.3207914Z           ]
2026-06-18T12:03:29.3208210Z         },
2026-06-18T12:03:29.3208491Z         "int": {
2026-06-18T12:03:29.3208806Z           "complete": true,
2026-06-18T12:03:29.3209201Z           "evidence": [
2026-06-18T12:03:29.3209483Z             {
2026-06-18T12:03:29.3209911Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.3210211Z               "line": 415
2026-06-18T12:03:29.3210503Z             },
2026-06-18T12:03:29.3210784Z             {
2026-06-18T12:03:29.3211207Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.3211518Z               "line": 1027
2026-06-18T12:03:29.3211799Z             }
2026-06-18T12:03:29.3212081Z           ]
2026-06-18T12:03:29.3212353Z         },
2026-06-18T12:03:29.3212646Z         "unit": {
2026-06-18T12:03:29.3212959Z           "complete": true,
2026-06-18T12:03:29.3213249Z           "evidence": [
2026-06-18T12:03:29.3213530Z             {
2026-06-18T12:03:29.3213937Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.3215361Z               "line": 359
2026-06-18T12:03:29.3216073Z             },
2026-06-18T12:03:29.3216707Z             {
2026-06-18T12:03:29.3217443Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.3218369Z               "line": 515
2026-06-18T12:03:29.3219161Z             },
2026-06-18T12:03:29.3219785Z             {
2026-06-18T12:03:29.3220514Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.3221587Z               "line": 116
2026-06-18T12:03:29.3222288Z             },
2026-06-18T12:03:29.3222913Z             {
2026-06-18T12:03:29.3223634Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.3224540Z               "line": 160
2026-06-18T12:03:29.3225221Z             }
2026-06-18T12:03:29.3225860Z           ]
2026-06-18T12:03:29.3226477Z         }
2026-06-18T12:03:29.3227073Z       }
2026-06-18T12:03:29.3227665Z     },
2026-06-18T12:03:29.3228309Z     {
2026-06-18T12:03:29.3229034Z       "id": "REQ-INST-9",
2026-06-18T12:03:29.3230083Z       "title": "Multi-subnet membership (same-user N subnets; cross-user seam)",
2026-06-18T12:03:29.3231224Z       "requiredStages": [
2026-06-18T12:03:29.3231937Z         "impl",
2026-06-18T12:03:29.3232571Z         "unit"
2026-06-18T12:03:29.3233219Z       ],
2026-06-18T12:03:29.3233823Z       "stages": {
2026-06-18T12:03:29.3234466Z         "doc": {
2026-06-18T12:03:29.3235114Z           "complete": false,
2026-06-18T12:03:29.3235863Z           "evidence": []
2026-06-18T12:03:29.3236567Z         },
2026-06-18T12:03:29.3237174Z         "impl": {
2026-06-18T12:03:29.3237847Z           "complete": true,
2026-06-18T12:03:29.3238582Z           "evidence": [
2026-06-18T12:03:29.3239328Z             {
2026-06-18T12:03:29.3240080Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3241000Z               "line": 449
2026-06-18T12:03:29.3241683Z             }
2026-06-18T12:03:29.3242301Z           ]
2026-06-18T12:03:29.3242906Z         },
2026-06-18T12:03:29.3243527Z         "int": {
2026-06-18T12:03:29.3244189Z           "complete": false,
2026-06-18T12:03:29.3244939Z           "evidence": []
2026-06-18T12:03:29.3245627Z         },
2026-06-18T12:03:29.3246247Z         "unit": {
2026-06-18T12:03:29.3246910Z           "complete": true,
2026-06-18T12:03:29.3247626Z           "evidence": [
2026-06-18T12:03:29.3248312Z             {
2026-06-18T12:03:29.3249176Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3250136Z               "line": 1397
2026-06-18T12:03:29.3250836Z             },
2026-06-18T12:03:29.3251470Z             {
2026-06-18T12:03:29.3252209Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3253124Z               "line": 1406
2026-06-18T12:03:29.3253829Z             },
2026-06-18T12:03:29.3254439Z             {
2026-06-18T12:03:29.3255185Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3256115Z               "line": 1422
2026-06-18T12:03:29.3256817Z             },
2026-06-18T12:03:29.3257461Z             {
2026-06-18T12:03:29.3258191Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3259201Z               "line": 1434
2026-06-18T12:03:29.3259893Z             },
2026-06-18T12:03:29.3260518Z             {
2026-06-18T12:03:29.3261253Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.3262154Z               "line": 1454
2026-06-18T12:03:29.3262866Z             }
2026-06-18T12:03:29.3263498Z           ]
2026-06-18T12:03:29.3264103Z         }
2026-06-18T12:03:29.3264723Z       }
2026-06-18T12:03:29.3265309Z     },
2026-06-18T12:03:29.3265893Z     {
2026-06-18T12:03:29.3266523Z       "id": "REQ-INSTALL-1",
2026-06-18T12:03:29.3267576Z       "title": "Two install paths; signed one-line script; OS-service registration",
2026-06-18T12:03:29.3268747Z       "requiredStages": [
2026-06-18T12:03:29.3269542Z         "doc",
2026-06-18T12:03:29.3270176Z         "impl",
2026-06-18T12:03:29.3270809Z         "int"
2026-06-18T12:03:29.3271599Z       ],
2026-06-18T12:03:29.3272195Z       "stages": {
2026-06-18T12:03:29.3272834Z         "doc": {
2026-06-18T12:03:29.3273497Z           "complete": true,
2026-06-18T12:03:29.3274230Z           "evidence": [
2026-06-18T12:03:29.3274907Z             {
2026-06-18T12:03:29.3275560Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3276358Z               "line": 732
2026-06-18T12:03:29.3277054Z             }
2026-06-18T12:03:29.3277665Z           ]
2026-06-18T12:03:29.3278413Z         },
2026-06-18T12:03:29.3279105Z         "impl": {
2026-06-18T12:03:29.3279773Z           "complete": true,
2026-06-18T12:03:29.3280499Z           "evidence": [
2026-06-18T12:03:29.3281176Z             {
2026-06-18T12:03:29.3281878Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3282742Z               "line": 57
2026-06-18T12:03:29.3283418Z             },
2026-06-18T12:03:29.3284048Z             {
2026-06-18T12:03:29.3284733Z               "path": "installer/install.sh",
2026-06-18T12:03:29.3285602Z               "line": 52
2026-06-18T12:03:29.3286274Z             }
2026-06-18T12:03:29.3286890Z           ]
2026-06-18T12:03:29.3287495Z         },
2026-06-18T12:03:29.3288101Z         "int": {
2026-06-18T12:03:29.3288754Z           "complete": true,
2026-06-18T12:03:29.3289557Z           "evidence": [
2026-06-18T12:03:29.3290229Z             {
2026-06-18T12:03:29.3290953Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T12:03:29.3291873Z               "line": 21
2026-06-18T12:03:29.3292557Z             }
2026-06-18T12:03:29.3293167Z           ]
2026-06-18T12:03:29.3293759Z         },
2026-06-18T12:03:29.3294378Z         "unit": {
2026-06-18T12:03:29.3295035Z           "complete": false,
2026-06-18T12:03:29.3295759Z           "evidence": []
2026-06-18T12:03:29.3296447Z         }
2026-06-18T12:03:29.3297046Z       }
2026-06-18T12:03:29.3297626Z     },
2026-06-18T12:03:29.3298208Z     {
2026-06-18T12:03:29.3298837Z       "id": "REQ-INSTALL-10",
2026-06-18T12:03:29.3303342Z       "title": "Windows at-logon autostart runs the daemon in the background with no persistent window: the scheduled task launches `spt daemon start` (which spawn_detaches a console-less DETACHED_PROCESS daemon and exits) rather than the foreground `spt daemon run` — Task Scheduler's interactive ONLOGON launch of a long-lived console process otherwise leaves a visible console window for the daemon's whole lifetime (v0.7.4)",
2026-06-18T12:03:29.3307493Z       "requiredStages": [
2026-06-18T12:03:29.3308238Z         "impl",
2026-06-18T12:03:29.3308867Z         "unit"
2026-06-18T12:03:29.3309584Z       ],
2026-06-18T12:03:29.3310190Z       "stages": {
2026-06-18T12:03:29.3310829Z         "doc": {
2026-06-18T12:03:29.3311492Z           "complete": false,
2026-06-18T12:03:29.3312232Z           "evidence": []
2026-06-18T12:03:29.3312918Z         },
2026-06-18T12:03:29.3313530Z         "impl": {
2026-06-18T12:03:29.3314197Z           "complete": true,
2026-06-18T12:03:29.3314921Z           "evidence": [
2026-06-18T12:03:29.3315618Z             {
2026-06-18T12:03:29.3316313Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3317190Z               "line": 191
2026-06-18T12:03:29.3317882Z             }
2026-06-18T12:03:29.3318493Z           ]
2026-06-18T12:03:29.3319161Z         },
2026-06-18T12:03:29.3319776Z         "int": {
2026-06-18T12:03:29.3320430Z           "complete": false,
2026-06-18T12:03:29.3321167Z           "evidence": []
2026-06-18T12:03:29.3321857Z         },
2026-06-18T12:03:29.3322477Z         "unit": {
2026-06-18T12:03:29.3323139Z           "complete": true,
2026-06-18T12:03:29.3323861Z           "evidence": [
2026-06-18T12:03:29.3324542Z             {
2026-06-18T12:03:29.3325268Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T12:03:29.3326193Z               "line": 211
2026-06-18T12:03:29.3326869Z             }
2026-06-18T12:03:29.3327479Z           ]
2026-06-18T12:03:29.3328079Z         }
2026-06-18T12:03:29.3328675Z       }
2026-06-18T12:03:29.3329349Z     },
2026-06-18T12:03:29.3330108Z     {
2026-06-18T12:03:29.3330724Z       "id": "REQ-INSTALL-11",
2026-06-18T12:03:29.3336539Z       "title": "Adapter command templates resolve their program against the adapter's install dir BEFORE PATH: a `.spt`-shipped binary (dropped to adapters/_github/<safe>/ by --release/--github acquisition, or kept in the source_dir under copy-mode where only manifest+strings/ are copied to adapters/<name>) runs without any PATH placement — a bare-name template token (e.g. `claude-spt-digest ...`) is rewritten to <install_dir>/<program>(.exe on Windows) when that file exists, else left bare for the PATH fallback. Makes a `.spt` self-contained (closes the --release bundled-binary gap perri confirmed) (v0.7.4)",
2026-06-18T12:03:29.3342283Z       "requiredStages": [
2026-06-18T12:03:29.3343006Z         "doc",
2026-06-18T12:03:29.3343630Z         "impl",
2026-06-18T12:03:29.3344255Z         "unit"
2026-06-18T12:03:29.3344868Z       ],
2026-06-18T12:03:29.3345473Z       "stages": {
2026-06-18T12:03:29.3346135Z         "doc": {
2026-06-18T12:03:29.3346793Z           "complete": true,
2026-06-18T12:03:29.3347522Z           "evidence": [
2026-06-18T12:03:29.3348198Z             {
2026-06-18T12:03:29.3348861Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3349738Z               "line": 138
2026-06-18T12:03:29.3350426Z             },
2026-06-18T12:03:29.3351051Z             {
2026-06-18T12:03:29.3351723Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.3352564Z               "line": 82
2026-06-18T12:03:29.3353256Z             }
2026-06-18T12:03:29.3353856Z           ]
2026-06-18T12:03:29.3354472Z         },
2026-06-18T12:03:29.3355074Z         "impl": {
2026-06-18T12:03:29.3359974Z           "complete": true,
2026-06-18T12:03:29.3360777Z           "evidence": [
2026-06-18T12:03:29.3361459Z             {
2026-06-18T12:03:29.3362193Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.3363114Z               "line": 223
2026-06-18T12:03:29.3363807Z             },
2026-06-18T12:03:29.3364465Z             {
2026-06-18T12:03:29.3365213Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3366134Z               "line": 99
2026-06-18T12:03:29.3366825Z             },
2026-06-18T12:03:29.3367436Z             {
2026-06-18T12:03:29.3368167Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.3369176Z               "line": 117
2026-06-18T12:03:29.3369863Z             },
2026-06-18T12:03:29.3370497Z             {
2026-06-18T12:03:29.3371242Z               "path": "crates/spt-daemon/src/livehost.rs",
2026-06-18T12:03:29.3372138Z               "line": 332
2026-06-18T12:03:29.3372820Z             },
2026-06-18T12:03:29.3373444Z             {
2026-06-18T12:03:29.3374161Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.3375044Z               "line": 88
2026-06-18T12:03:29.3375730Z             },
2026-06-18T12:03:29.3376354Z             {
2026-06-18T12:03:29.3377071Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.3377963Z               "line": 104
2026-06-18T12:03:29.3378655Z             },
2026-06-18T12:03:29.3379350Z             {
2026-06-18T12:03:29.3380079Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3380982Z               "line": 297
2026-06-18T12:03:29.3381675Z             },
2026-06-18T12:03:29.3382303Z             {
2026-06-18T12:03:29.3383041Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3383952Z               "line": 332
2026-06-18T12:03:29.3384650Z             },
2026-06-18T12:03:29.3385275Z             {
2026-06-18T12:03:29.3386014Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3386933Z               "line": 523
2026-06-18T12:03:29.3387622Z             },
2026-06-18T12:03:29.3388241Z             {
2026-06-18T12:03:29.3389057Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3389968Z               "line": 546
2026-06-18T12:03:29.3390668Z             },
2026-06-18T12:03:29.3391522Z             {
2026-06-18T12:03:29.3392263Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3393178Z               "line": 561
2026-06-18T12:03:29.3393873Z             },
2026-06-18T12:03:29.3394489Z             {
2026-06-18T12:03:29.3395172Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.3396050Z               "line": 492
2026-06-18T12:03:29.3396745Z             }
2026-06-18T12:03:29.3397493Z           ]
2026-06-18T12:03:29.3398101Z         },
2026-06-18T12:03:29.3398697Z         "int": {
2026-06-18T12:03:29.3399441Z           "complete": false,
2026-06-18T12:03:29.3400200Z           "evidence": []
2026-06-18T12:03:29.3400890Z         },
2026-06-18T12:03:29.3401505Z         "unit": {
2026-06-18T12:03:29.3402168Z           "complete": true,
2026-06-18T12:03:29.3402889Z           "evidence": [
2026-06-18T12:03:29.3403565Z             {
2026-06-18T12:03:29.3404296Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3405216Z               "line": 799
2026-06-18T12:03:29.3405909Z             },
2026-06-18T12:03:29.3406534Z             {
2026-06-18T12:03:29.3407259Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3408173Z               "line": 811
2026-06-18T12:03:29.3408862Z             },
2026-06-18T12:03:29.3409572Z             {
2026-06-18T12:03:29.3410302Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.3411216Z               "line": 820
2026-06-18T12:03:29.3411911Z             }
2026-06-18T12:03:29.3412523Z           ]
2026-06-18T12:03:29.3413137Z         }
2026-06-18T12:03:29.3413722Z       }
2026-06-18T12:03:29.3414308Z     },
2026-06-18T12:03:29.3414899Z     {
2026-06-18T12:03:29.3415520Z       "id": "REQ-INSTALL-12",
2026-06-18T12:03:29.3424057Z       "title": "Durable active-profile pointer for bind-time profile selection (ADR-0021): adapters/active-profiles.toml at the registry ROOT (sibling to the per-adapter <name>/ dirs, so adapter add/update/remove — which only rewrite a <name>/ subdir — can never clobber it), a flat host_binary → \"adapter[:profile]\" map. Read at bind as the PRIMARY profile selector; unset → the registered_at_ms fallback (REQ-START-5). Written ONLY by `spt adapter use <adapter>[:profile]` (resolves the adapter's host_binaries → sets each binary→adapter[:profile]); `spt adapter use --clear <adapter|binary>` drops. NEVER auto-written by install/update/adapter add (that is precisely what would let an update silently flip the active profile). A stale pointer (uninstalled adapter / deleted profile) self-heals: ignored, fall back, warn once. Pruned on adapter remove. Atomic write (spt_store atomic). (v0.9.0)",
2026-06-18T12:03:29.3432146Z       "requiredStages": [
2026-06-18T12:03:29.3432852Z         "doc",
2026-06-18T12:03:29.3433482Z         "impl",
2026-06-18T12:03:29.3434112Z         "unit",
2026-06-18T12:03:29.3434746Z         "int"
2026-06-18T12:03:29.3435357Z       ],
2026-06-18T12:03:29.3435957Z       "stages": {
2026-06-18T12:03:29.3436631Z         "doc": {
2026-06-18T12:03:29.3437296Z           "complete": true,
2026-06-18T12:03:29.3438028Z           "evidence": [
2026-06-18T12:03:29.3438710Z             {
2026-06-18T12:03:29.3439415Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3440209Z               "line": 185
2026-06-18T12:03:29.3440904Z             }
2026-06-18T12:03:29.3441525Z           ]
2026-06-18T12:03:29.3442117Z         },
2026-06-18T12:03:29.3442739Z         "impl": {
2026-06-18T12:03:29.3443403Z           "complete": true,
2026-06-18T12:03:29.3444127Z           "evidence": [
2026-06-18T12:03:29.3444799Z             {
2026-06-18T12:03:29.3445539Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3446450Z               "line": 27
2026-06-18T12:03:29.3447137Z             },
2026-06-18T12:03:29.3447779Z             {
2026-06-18T12:03:29.3448512Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3449509Z               "line": 223
2026-06-18T12:03:29.3450370Z             },
2026-06-18T12:03:29.3450997Z             {
2026-06-18T12:03:29.3451666Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3452519Z               "line": 5516
2026-06-18T12:03:29.3453209Z             }
2026-06-18T12:03:29.3453819Z           ]
2026-06-18T12:03:29.3454429Z         },
2026-06-18T12:03:29.3455034Z         "int": {
2026-06-18T12:03:29.3455699Z           "complete": true,
2026-06-18T12:03:29.3456539Z           "evidence": [
2026-06-18T12:03:29.3457220Z             {
2026-06-18T12:03:29.3457959Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-18T12:03:29.3458876Z               "line": 19
2026-06-18T12:03:29.3459644Z             }
2026-06-18T12:03:29.3460264Z           ]
2026-06-18T12:03:29.3460859Z         },
2026-06-18T12:03:29.3461467Z         "unit": {
2026-06-18T12:03:29.3462130Z           "complete": true,
2026-06-18T12:03:29.3462855Z           "evidence": [
2026-06-18T12:03:29.3463528Z             {
2026-06-18T12:03:29.3464275Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3465181Z               "line": 395
2026-06-18T12:03:29.3465886Z             },
2026-06-18T12:03:29.3466514Z             {
2026-06-18T12:03:29.3467251Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3468152Z               "line": 421
2026-06-18T12:03:29.3468843Z             },
2026-06-18T12:03:29.3469531Z             {
2026-06-18T12:03:29.3470291Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3471192Z               "line": 440
2026-06-18T12:03:29.3471870Z             },
2026-06-18T12:03:29.3472486Z             {
2026-06-18T12:03:29.3473210Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3474136Z               "line": 475
2026-06-18T12:03:29.3474821Z             },
2026-06-18T12:03:29.3475441Z             {
2026-06-18T12:03:29.3476122Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3476958Z               "line": 8435
2026-06-18T12:03:29.3477660Z             }
2026-06-18T12:03:29.3478265Z           ]
2026-06-18T12:03:29.3478867Z         }
2026-06-18T12:03:29.3479536Z       }
2026-06-18T12:03:29.3480115Z     },
2026-06-18T12:03:29.3480707Z     {
2026-06-18T12:03:29.3481317Z       "id": "REQ-INSTALL-2",
2026-06-18T12:03:29.3482211Z       "title": "Marketplace-repackaging-friendly install",
2026-06-18T12:03:29.3483174Z       "requiredStages": [
2026-06-18T12:03:29.3483889Z         "doc"
2026-06-18T12:03:29.3484509Z       ],
2026-06-18T12:03:29.3485118Z       "stages": {
2026-06-18T12:03:29.3485757Z         "doc": {
2026-06-18T12:03:29.3486420Z           "complete": true,
2026-06-18T12:03:29.3487148Z           "evidence": [
2026-06-18T12:03:29.3487823Z             {
2026-06-18T12:03:29.3488473Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3489330Z               "line": 733
2026-06-18T12:03:29.3490011Z             }
2026-06-18T12:03:29.3490628Z           ]
2026-06-18T12:03:29.3491220Z         },
2026-06-18T12:03:29.3491839Z         "impl": {
2026-06-18T12:03:29.3492487Z           "complete": false,
2026-06-18T12:03:29.3493218Z           "evidence": []
2026-06-18T12:03:29.3493916Z         },
2026-06-18T12:03:29.3494526Z         "int": {
2026-06-18T12:03:29.3495185Z           "complete": false,
2026-06-18T12:03:29.3495927Z           "evidence": []
2026-06-18T12:03:29.3496618Z         },
2026-06-18T12:03:29.3497233Z         "unit": {
2026-06-18T12:03:29.3497897Z           "complete": false,
2026-06-18T12:03:29.3498654Z           "evidence": []
2026-06-18T12:03:29.3499409Z         }
2026-06-18T12:03:29.3499996Z       }
2026-06-18T12:03:29.3500580Z     },
2026-06-18T12:03:29.3501164Z     {
2026-06-18T12:03:29.3501784Z       "id": "REQ-INSTALL-3",
2026-06-18T12:03:29.3502686Z       "title": "Idempotent + interactive-optional first run",
2026-06-18T12:03:29.3503665Z       "requiredStages": [
2026-06-18T12:03:29.3504360Z         "impl",
2026-06-18T12:03:29.3504985Z         "int"
2026-06-18T12:03:29.3505595Z       ],
2026-06-18T12:03:29.3506324Z       "stages": {
2026-06-18T12:03:29.3506963Z         "doc": {
2026-06-18T12:03:29.3507616Z           "complete": false,
2026-06-18T12:03:29.3508350Z           "evidence": []
2026-06-18T12:03:29.3509134Z         },
2026-06-18T12:03:29.3509749Z         "impl": {
2026-06-18T12:03:29.3510422Z           "complete": true,
2026-06-18T12:03:29.3511135Z           "evidence": [
2026-06-18T12:03:29.3511810Z             {
2026-06-18T12:03:29.3512616Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3513485Z               "line": 100
2026-06-18T12:03:29.3514168Z             },
2026-06-18T12:03:29.3514793Z             {
2026-06-18T12:03:29.3515479Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3516348Z               "line": 111
2026-06-18T12:03:29.3517033Z             },
2026-06-18T12:03:29.3517662Z             {
2026-06-18T12:03:29.3518344Z               "path": "installer/install.sh",
2026-06-18T12:03:29.3519280Z               "line": 79
2026-06-18T12:03:29.3519976Z             }
2026-06-18T12:03:29.3520581Z           ]
2026-06-18T12:03:29.3521188Z         },
2026-06-18T12:03:29.3521792Z         "int": {
2026-06-18T12:03:29.3522448Z           "complete": true,
2026-06-18T12:03:29.3523182Z           "evidence": [
2026-06-18T12:03:29.3523887Z             {
2026-06-18T12:03:29.3524613Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T12:03:29.3525523Z               "line": 167
2026-06-18T12:03:29.3526259Z             }
2026-06-18T12:03:29.3526885Z           ]
2026-06-18T12:03:29.3527492Z         },
2026-06-18T12:03:29.3528088Z         "unit": {
2026-06-18T12:03:29.3528756Z           "complete": false,
2026-06-18T12:03:29.3529583Z           "evidence": []
2026-06-18T12:03:29.3530273Z         }
2026-06-18T12:03:29.3530866Z       }
2026-06-18T12:03:29.3531452Z     },
2026-06-18T12:03:29.3532039Z     {
2026-06-18T12:03:29.3532655Z       "id": "REQ-INSTALL-4",
2026-06-18T12:03:29.3535164Z       "title": "Adapter registration lifecycle: spt adapter add (--github, manifest-first, install-is-first-update) + soft-deregister remove + optional manifest uninstall template; node-local registered-adapter set self-update ripples over",
2026-06-18T12:03:29.3537757Z       "requiredStages": [
2026-06-18T12:03:29.3538459Z         "impl",
2026-06-18T12:03:29.3539168Z         "unit"
2026-06-18T12:03:29.3539788Z       ],
2026-06-18T12:03:29.3540386Z       "stages": {
2026-06-18T12:03:29.3541026Z         "doc": {
2026-06-18T12:03:29.3541697Z           "complete": false,
2026-06-18T12:03:29.3542436Z           "evidence": []
2026-06-18T12:03:29.3543128Z         },
2026-06-18T12:03:29.3543719Z         "impl": {
2026-06-18T12:03:29.3544368Z           "complete": true,
2026-06-18T12:03:29.3545085Z           "evidence": [
2026-06-18T12:03:29.3545752Z             {
2026-06-18T12:03:29.3546511Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.3547455Z               "line": 165
2026-06-18T12:03:29.3548150Z             },
2026-06-18T12:03:29.3548780Z             {
2026-06-18T12:03:29.3549615Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3550523Z               "line": 29
2026-06-18T12:03:29.3551204Z             },
2026-06-18T12:03:29.3551834Z             {
2026-06-18T12:03:29.3552567Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3553491Z               "line": 288
2026-06-18T12:03:29.3554195Z             },
2026-06-18T12:03:29.3554828Z             {
2026-06-18T12:03:29.3555558Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3556480Z               "line": 356
2026-06-18T12:03:29.3557171Z             },
2026-06-18T12:03:29.3557800Z             {
2026-06-18T12:03:29.3558560Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3559527Z               "line": 386
2026-06-18T12:03:29.3560227Z             },
2026-06-18T12:03:29.3560838Z             {
2026-06-18T12:03:29.3561564Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3562602Z               "line": 434
2026-06-18T12:03:29.3563294Z             },
2026-06-18T12:03:29.3563908Z             {
2026-06-18T12:03:29.3564583Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3565427Z               "line": 5235
2026-06-18T12:03:29.3566123Z             }
2026-06-18T12:03:29.3566730Z           ]
2026-06-18T12:03:29.3567327Z         },
2026-06-18T12:03:29.3567923Z         "int": {
2026-06-18T12:03:29.3568704Z           "complete": false,
2026-06-18T12:03:29.3569514Z           "evidence": []
2026-06-18T12:03:29.3570215Z         },
2026-06-18T12:03:29.3570811Z         "unit": {
2026-06-18T12:03:29.3571459Z           "complete": true,
2026-06-18T12:03:29.3572176Z           "evidence": [
2026-06-18T12:03:29.3572843Z             {
2026-06-18T12:03:29.3573603Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.3574544Z               "line": 375
2026-06-18T12:03:29.3575234Z             },
2026-06-18T12:03:29.3575873Z             {
2026-06-18T12:03:29.3576611Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3577529Z               "line": 808
2026-06-18T12:03:29.3578220Z             },
2026-06-18T12:03:29.3578859Z             {
2026-06-18T12:03:29.3579676Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3580598Z               "line": 849
2026-06-18T12:03:29.3581281Z             },
2026-06-18T12:03:29.3581911Z             {
2026-06-18T12:03:29.3582636Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3583562Z               "line": 869
2026-06-18T12:03:29.3584252Z             },
2026-06-18T12:03:29.3584877Z             {
2026-06-18T12:03:29.3585561Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3586405Z               "line": 8173
2026-06-18T12:03:29.3587101Z             }
2026-06-18T12:03:29.3587714Z           ]
2026-06-18T12:03:29.3588313Z         }
2026-06-18T12:03:29.3588909Z       }
2026-06-18T12:03:29.3589577Z     },
2026-06-18T12:03:29.3590158Z     {
2026-06-18T12:03:29.3590772Z       "id": "REQ-INSTALL-5",
2026-06-18T12:03:29.3592793Z       "title": "Non-interactive install path: the canonical one-liner doubles as every adapter's pack-in on-demand install (no second mechanism); sha256-verified fetch; user-PATH registration",
2026-06-18T12:03:29.3594912Z       "requiredStages": [
2026-06-18T12:03:29.3595616Z         "impl",
2026-06-18T12:03:29.3596248Z         "int"
2026-06-18T12:03:29.3596869Z       ],
2026-06-18T12:03:29.3597474Z       "stages": {
2026-06-18T12:03:29.3598113Z         "doc": {
2026-06-18T12:03:29.3598773Z           "complete": false,
2026-06-18T12:03:29.3599574Z           "evidence": []
2026-06-18T12:03:29.3600246Z         },
2026-06-18T12:03:29.3600853Z         "impl": {
2026-06-18T12:03:29.3601510Z           "complete": true,
2026-06-18T12:03:29.3602224Z           "evidence": [
2026-06-18T12:03:29.3602896Z             {
2026-06-18T12:03:29.3603584Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3604448Z               "line": 5
2026-06-18T12:03:29.3605116Z             },
2026-06-18T12:03:29.3605730Z             {
2026-06-18T12:03:29.3606418Z               "path": "installer/install.sh",
2026-06-18T12:03:29.3607254Z               "line": 6
2026-06-18T12:03:29.3607916Z             }
2026-06-18T12:03:29.3608532Z           ]
2026-06-18T12:03:29.3609215Z         },
2026-06-18T12:03:29.3609820Z         "int": {
2026-06-18T12:03:29.3610468Z           "complete": true,
2026-06-18T12:03:29.3611216Z           "evidence": [
2026-06-18T12:03:29.3611878Z             {
2026-06-18T12:03:29.3612279Z               "path": "crates/spt/tests/oneliner_e2e.rs",
2026-06-18T12:03:29.3612589Z               "line": 22
2026-06-18T12:03:29.3616969Z             }
2026-06-18T12:03:29.3617316Z           ]
2026-06-18T12:03:29.3617617Z         },
2026-06-18T12:03:29.3617914Z         "unit": {
2026-06-18T12:03:29.3618238Z           "complete": false,
2026-06-18T12:03:29.3618542Z           "evidence": []
2026-06-18T12:03:29.3619097Z         }
2026-06-18T12:03:29.3619390Z       }
2026-06-18T12:03:29.3619660Z     },
2026-06-18T12:03:29.3619945Z     {
2026-06-18T12:03:29.3620264Z       "id": "REQ-INSTALL-6",
2026-06-18T12:03:29.3623955Z       "title": "Linux elevation install leg: install.sh symlinks the binary into a sudo-reachable path (/usr/local/bin; graceful print-the-one-liner when unelevated) so sudo spt resolves; first sudo spt detects elevation and prompts ONCE for the default user account — thereafter any elevated daemon launch runs daemon + state under that account, never root (KH 5.7 interplay verified) (M8 decision 8)",
2026-06-18T12:03:29.3624421Z       "requiredStages": [
2026-06-18T12:03:29.3624723Z         "impl",
2026-06-18T12:03:29.3625014Z         "unit"
2026-06-18T12:03:29.3625301Z       ],
2026-06-18T12:03:29.3625578Z       "stages": {
2026-06-18T12:03:29.3625864Z         "doc": {
2026-06-18T12:03:29.3626188Z           "complete": false,
2026-06-18T12:03:29.3626502Z           "evidence": []
2026-06-18T12:03:29.3626813Z         },
2026-06-18T12:03:29.3627104Z         "impl": {
2026-06-18T12:03:29.3627407Z           "complete": true,
2026-06-18T12:03:29.3627696Z           "evidence": [
2026-06-18T12:03:29.3627972Z             {
2026-06-18T12:03:29.3628383Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.3628679Z               "line": 61
2026-06-18T12:03:29.3629037Z             },
2026-06-18T12:03:29.3629318Z             {
2026-06-18T12:03:29.3629741Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.3630044Z               "line": 623
2026-06-18T12:03:29.3630320Z             },
2026-06-18T12:03:29.3630602Z             {
2026-06-18T12:03:29.3631017Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.3631316Z               "line": 191
2026-06-18T12:03:29.3631608Z             },
2026-06-18T12:03:29.3631890Z             {
2026-06-18T12:03:29.3632298Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.3632603Z               "line": 276
2026-06-18T12:03:29.3632895Z             },
2026-06-18T12:03:29.3633180Z             {
2026-06-18T12:03:29.3633533Z               "path": "crates/spt/src/main.rs",
2026-06-18T12:03:29.3633838Z               "line": 42
2026-06-18T12:03:29.3634125Z             },
2026-06-18T12:03:29.3634411Z             {
2026-06-18T12:03:29.3634755Z               "path": "installer/install.sh",
2026-06-18T12:03:29.3635062Z               "line": 104
2026-06-18T12:03:29.3635346Z             }
2026-06-18T12:03:29.3635637Z           ]
2026-06-18T12:03:29.3635922Z         },
2026-06-18T12:03:29.3636214Z         "int": {
2026-06-18T12:03:29.3636538Z           "complete": false,
2026-06-18T12:03:29.3636834Z           "evidence": []
2026-06-18T12:03:29.3637129Z         },
2026-06-18T12:03:29.3637420Z         "unit": {
2026-06-18T12:03:29.3637739Z           "complete": true,
2026-06-18T12:03:29.3638042Z           "evidence": [
2026-06-18T12:03:29.3638324Z             {
2026-06-18T12:03:29.3638737Z               "path": "crates/spt-daemon/src/deelevate.rs",
2026-06-18T12:03:29.3639118Z               "line": 866
2026-06-18T12:03:29.3639405Z             }
2026-06-18T12:03:29.3639676Z           ]
2026-06-18T12:03:29.3639968Z         }
2026-06-18T12:03:29.3640259Z       }
2026-06-18T12:03:29.3640534Z     },
2026-06-18T12:03:29.3640818Z     {
2026-06-18T12:03:29.3641128Z       "id": "REQ-INSTALL-7",
2026-06-18T12:03:29.3644498Z       "title": "Windows inbound reachability: the elevated install leg registers the inbound-UDP firewall rule (New-NetFirewallRule); the daemon self-detects blocked inbound and renders it as the no-connection state in subnet status + the coming-online banner (covers user-scope installs that skip the elevated leg — never a silent NO_SEED_HOLDER dead-end) (M8 root cause 3)",
2026-06-18T12:03:29.3644841Z       "requiredStages": [
2026-06-18T12:03:29.3645132Z         "impl"
2026-06-18T12:03:29.3645418Z       ],
2026-06-18T12:03:29.3645698Z       "stages": {
2026-06-18T12:03:29.3646116Z         "doc": {
2026-06-18T12:03:29.3646425Z           "complete": false,
2026-06-18T12:03:29.3646740Z           "evidence": []
2026-06-18T12:03:29.3647032Z         },
2026-06-18T12:03:29.3647322Z         "impl": {
2026-06-18T12:03:29.3647632Z           "complete": true,
2026-06-18T12:03:29.3647933Z           "evidence": [
2026-06-18T12:03:29.3648220Z             {
2026-06-18T12:03:29.3648574Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3649073Z               "line": 3778
2026-06-18T12:03:29.3649359Z             },
2026-06-18T12:03:29.3649655Z             {
2026-06-18T12:03:29.3650027Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3650327Z               "line": 157
2026-06-18T12:03:29.3650614Z             }
2026-06-18T12:03:29.3650904Z           ]
2026-06-18T12:03:29.3651178Z         },
2026-06-18T12:03:29.3651460Z         "int": {
2026-06-18T12:03:29.3651775Z           "complete": false,
2026-06-18T12:03:29.3652080Z           "evidence": []
2026-06-18T12:03:29.3652371Z         },
2026-06-18T12:03:29.3652657Z         "unit": {
2026-06-18T12:03:29.3652963Z           "complete": false,
2026-06-18T12:03:29.3653273Z           "evidence": []
2026-06-18T12:03:29.3653558Z         }
2026-06-18T12:03:29.3653837Z       }
2026-06-18T12:03:29.3654118Z     },
2026-06-18T12:03:29.3654391Z     {
2026-06-18T12:03:29.3654711Z       "id": "REQ-INSTALL-8",
2026-06-18T12:03:29.3658216Z       "title": "OS-service registration (REQ-INSTALL-1's deferred third leg): Linux systemd USER service + loginctl enable-linger (linger rides the elevated install leg; daemon starts at boot pre-login, user universe per KH 5.7, systemctl --user managed); Windows scheduled task at-logon (interactive session, no stored credentials); a node is reachable after reboot without any manual spt invocation (M8 decision 17)",
2026-06-18T12:03:29.3658549Z       "requiredStages": [
2026-06-18T12:03:29.3658826Z         "impl"
2026-06-18T12:03:29.3659181Z       ],
2026-06-18T12:03:29.3659482Z       "stages": {
2026-06-18T12:03:29.3659772Z         "doc": {
2026-06-18T12:03:29.3660082Z           "complete": false,
2026-06-18T12:03:29.3660378Z           "evidence": []
2026-06-18T12:03:29.3660665Z         },
2026-06-18T12:03:29.3660961Z         "impl": {
2026-06-18T12:03:29.3661270Z           "complete": true,
2026-06-18T12:03:29.3661573Z           "evidence": [
2026-06-18T12:03:29.3661857Z             {
2026-06-18T12:03:29.3662219Z               "path": "installer/install.ps1",
2026-06-18T12:03:29.3662530Z               "line": 184
2026-06-18T12:03:29.3662815Z             },
2026-06-18T12:03:29.3663106Z             {
2026-06-18T12:03:29.3663464Z               "path": "installer/install.sh",
2026-06-18T12:03:29.3663764Z               "line": 121
2026-06-18T12:03:29.3664046Z             }
2026-06-18T12:03:29.3664327Z           ]
2026-06-18T12:03:29.3664599Z         },
2026-06-18T12:03:29.3664885Z         "int": {
2026-06-18T12:03:29.3665204Z           "complete": false,
2026-06-18T12:03:29.3665500Z           "evidence": []
2026-06-18T12:03:29.3665796Z         },
2026-06-18T12:03:29.3666082Z         "unit": {
2026-06-18T12:03:29.3666397Z           "complete": false,
2026-06-18T12:03:29.3666709Z           "evidence": []
2026-06-18T12:03:29.3666992Z         }
2026-06-18T12:03:29.3667284Z       }
2026-06-18T12:03:29.3667560Z     },
2026-06-18T12:03:29.3667847Z     {
2026-06-18T12:03:29.3668157Z       "id": "REQ-INSTALL-9",
2026-06-18T12:03:29.3671860Z       "title": "Adapter add from a GitHub release archive: `spt adapter add --release <user/repo> [--tag <tag>] [--asset <name>]` fetches a `.spt` tar asset over HTTPS+GitHub trust, extracts it to the durable adapters/_github home, and registers the root — ships built binaries source-free and versioned (the distribution path for an adapter whose dev repo is a monorepo subdir, where --github root-only clone does not fit)",
2026-06-18T12:03:29.3672196Z       "requiredStages": [
2026-06-18T12:03:29.3672479Z         "doc",
2026-06-18T12:03:29.3672770Z         "impl",
2026-06-18T12:03:29.3673176Z         "unit"
2026-06-18T12:03:29.3673463Z       ],
2026-06-18T12:03:29.3673758Z       "stages": {
2026-06-18T12:03:29.3674034Z         "doc": {
2026-06-18T12:03:29.3674349Z           "complete": true,
2026-06-18T12:03:29.3674639Z           "evidence": [
2026-06-18T12:03:29.3674924Z             {
2026-06-18T12:03:29.3675249Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3675544Z               "line": 749
2026-06-18T12:03:29.3675840Z             }
2026-06-18T12:03:29.3676245Z           ]
2026-06-18T12:03:29.3676527Z         },
2026-06-18T12:03:29.3676812Z         "impl": {
2026-06-18T12:03:29.3677122Z           "complete": true,
2026-06-18T12:03:29.3677425Z           "evidence": [
2026-06-18T12:03:29.3677707Z             {
2026-06-18T12:03:29.3678068Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3678379Z               "line": 2406
2026-06-18T12:03:29.3678669Z             },
2026-06-18T12:03:29.3679017Z             {
2026-06-18T12:03:29.3679375Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3679679Z               "line": 2430
2026-06-18T12:03:29.3679961Z             }
2026-06-18T12:03:29.3680250Z           ]
2026-06-18T12:03:29.3680536Z         },
2026-06-18T12:03:29.3680822Z         "int": {
2026-06-18T12:03:29.3681136Z           "complete": false,
2026-06-18T12:03:29.3681451Z           "evidence": []
2026-06-18T12:03:29.3681722Z         },
2026-06-18T12:03:29.3682018Z         "unit": {
2026-06-18T12:03:29.3682347Z           "complete": true,
2026-06-18T12:03:29.3682650Z           "evidence": [
2026-06-18T12:03:29.3682944Z             {
2026-06-18T12:03:29.3683292Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3683597Z               "line": 7430
2026-06-18T12:03:29.3683873Z             },
2026-06-18T12:03:29.3684156Z             {
2026-06-18T12:03:29.3684508Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3684804Z               "line": 8203
2026-06-18T12:03:29.3685089Z             }
2026-06-18T12:03:29.3685376Z           ]
2026-06-18T12:03:29.3685667Z         }
2026-06-18T12:03:29.3685948Z       }
2026-06-18T12:03:29.3686234Z     },
2026-06-18T12:03:29.3686515Z     {
2026-06-18T12:03:29.3686819Z       "id": "REQ-KICK-1",
2026-06-18T12:03:29.3694368Z       "title": "Explicit, loud controller displacement: `spt rc kick <target>` / `--take` (Take intent) kicks the incumbent controller and becomes controller; the displaced controller receives a LOUD `Displaced{by}` notice and is FULLY DETACHED (not demoted to a viewer). A default attach to a controlled endpoint is NEVER a silent displace (it is the Control busy-refusal). An old (N-1) rc omits intent → Control, so it can drive a free endpoint but CANNOT `--take` — it can never silently steal, and gets a clean busy-refusal instead. Taking control rides the same access_check(endpoint, origin, Unsolicited) as a normal control attach (if you may drive, you may take — no elevated kick policy). The picker surfaces 'Kick <node> and attach' (Take) only on a controlled (blue ■) endpoint, via the existing attach dispatch (single-bringup-path: intent is a parameter).",
2026-06-18T12:03:29.3694739Z       "requiredStages": [
2026-06-18T12:03:29.3695026Z         "doc",
2026-06-18T12:03:29.3695316Z         "impl",
2026-06-18T12:03:29.3695603Z         "unit",
2026-06-18T12:03:29.3695890Z         "int"
2026-06-18T12:03:29.3696169Z       ],
2026-06-18T12:03:29.3696460Z       "stages": {
2026-06-18T12:03:29.3696750Z         "doc": {
2026-06-18T12:03:29.3697085Z           "complete": true,
2026-06-18T12:03:29.3697379Z           "evidence": [
2026-06-18T12:03:29.3697656Z             {
2026-06-18T12:03:29.3697976Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3698276Z               "line": 342
2026-06-18T12:03:29.3698554Z             }
2026-06-18T12:03:29.3698846Z           ]
2026-06-18T12:03:29.3699208Z         },
2026-06-18T12:03:29.3699499Z         "impl": {
2026-06-18T12:03:29.3699799Z           "complete": true,
2026-06-18T12:03:29.3700104Z           "evidence": [
2026-06-18T12:03:29.3700528Z             {
2026-06-18T12:03:29.3700930Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.3701228Z               "line": 41
2026-06-18T12:03:29.3701502Z             },
2026-06-18T12:03:29.3701798Z             {
2026-06-18T12:03:29.3702141Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.3702451Z               "line": 181
2026-06-18T12:03:29.3702742Z             }
2026-06-18T12:03:29.3703028Z           ]
2026-06-18T12:03:29.3703530Z         },
2026-06-18T12:03:29.3703819Z         "int": {
2026-06-18T12:03:29.3704141Z           "complete": true,
2026-06-18T12:03:29.3704436Z           "evidence": [
2026-06-18T12:03:29.3704727Z             {
2026-06-18T12:03:29.3705133Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.3705424Z               "line": 791
2026-06-18T12:03:29.3705719Z             }
2026-06-18T12:03:29.3706000Z           ]
2026-06-18T12:03:29.3706286Z         },
2026-06-18T12:03:29.3706571Z         "unit": {
2026-06-18T12:03:29.3706896Z           "complete": true,
2026-06-18T12:03:29.3707197Z           "evidence": [
2026-06-18T12:03:29.3707483Z             {
2026-06-18T12:03:29.3707868Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.3708174Z               "line": 205
2026-06-18T12:03:29.3708469Z             }
2026-06-18T12:03:29.3708746Z           ]
2026-06-18T12:03:29.3709119Z         }
2026-06-18T12:03:29.3709397Z       }
2026-06-18T12:03:29.3709706Z     },
2026-06-18T12:03:29.3710011Z     {
2026-06-18T12:03:29.3710316Z       "id": "REQ-MANIFEST-1",
2026-06-18T12:03:29.3710932Z       "title": "Per-adapter manifest with adapter_name and min_spt_core_version",
2026-06-18T12:03:29.3711247Z       "requiredStages": [
2026-06-18T12:03:29.3711548Z         "doc",
2026-06-18T12:03:29.3711841Z         "impl",
2026-06-18T12:03:29.3712120Z         "unit"
2026-06-18T12:03:29.3712396Z       ],
2026-06-18T12:03:29.3712682Z       "stages": {
2026-06-18T12:03:29.3712964Z         "doc": {
2026-06-18T12:03:29.3713279Z           "complete": true,
2026-06-18T12:03:29.3713588Z           "evidence": [
2026-06-18T12:03:29.3713865Z             {
2026-06-18T12:03:29.3714194Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.3714497Z               "line": 19
2026-06-18T12:03:29.3714783Z             }
2026-06-18T12:03:29.3715074Z           ]
2026-06-18T12:03:29.3715365Z         },
2026-06-18T12:03:29.3715650Z         "impl": {
2026-06-18T12:03:29.3715984Z           "complete": true,
2026-06-18T12:03:29.3716284Z           "evidence": [
2026-06-18T12:03:29.3716575Z             {
2026-06-18T12:03:29.3716991Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3717294Z               "line": 18
2026-06-18T12:03:29.3717575Z             }
2026-06-18T12:03:29.3717866Z           ]
2026-06-18T12:03:29.3718156Z         },
2026-06-18T12:03:29.3718443Z         "int": {
2026-06-18T12:03:29.3718762Z           "complete": false,
2026-06-18T12:03:29.3719149Z           "evidence": []
2026-06-18T12:03:29.3719434Z         },
2026-06-18T12:03:29.3719713Z         "unit": {
2026-06-18T12:03:29.3720027Z           "complete": true,
2026-06-18T12:03:29.3720328Z           "evidence": [
2026-06-18T12:03:29.3720615Z             {
2026-06-18T12:03:29.3721028Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3721329Z               "line": 970
2026-06-18T12:03:29.3721615Z             },
2026-06-18T12:03:29.3721901Z             {
2026-06-18T12:03:29.3722329Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3722637Z               "line": 1122
2026-06-18T12:03:29.3722913Z             },
2026-06-18T12:03:29.3723190Z             {
2026-06-18T12:03:29.3723595Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3723906Z               "line": 1134
2026-06-18T12:03:29.3724182Z             },
2026-06-18T12:03:29.3724477Z             {
2026-06-18T12:03:29.3724881Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3725295Z               "line": 1145
2026-06-18T12:03:29.3725585Z             },
2026-06-18T12:03:29.3725857Z             {
2026-06-18T12:03:29.3726273Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3726569Z               "line": 1162
2026-06-18T12:03:29.3726869Z             },
2026-06-18T12:03:29.3727155Z             {
2026-06-18T12:03:29.3727551Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3727965Z               "line": 1176
2026-06-18T12:03:29.3728255Z             },
2026-06-18T12:03:29.3728542Z             {
2026-06-18T12:03:29.3728931Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3729304Z               "line": 1292
2026-06-18T12:03:29.3729603Z             },
2026-06-18T12:03:29.3729880Z             {
2026-06-18T12:03:29.3730278Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3730573Z               "line": 1307
2026-06-18T12:03:29.3730869Z             },
2026-06-18T12:03:29.3731165Z             {
2026-06-18T12:03:29.3731574Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3731889Z               "line": 1418
2026-06-18T12:03:29.3732176Z             },
2026-06-18T12:03:29.3732461Z             {
2026-06-18T12:03:29.3732871Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3733178Z               "line": 1429
2026-06-18T12:03:29.3733459Z             }
2026-06-18T12:03:29.3733751Z           ]
2026-06-18T12:03:29.3734037Z         }
2026-06-18T12:03:29.3734318Z       }
2026-06-18T12:03:29.3734601Z     },
2026-06-18T12:03:29.3734886Z     {
2026-06-18T12:03:29.3735196Z       "id": "REQ-MANIFEST-2",
2026-06-18T12:03:29.3736665Z       "title": "Adapter profiles — sparse leaf-replace overlays (shipped + local), composite <adapter>:<profile> addressing, shadow-refusal, tighten-only consent floors",
2026-06-18T12:03:29.3736989Z       "requiredStages": [
2026-06-18T12:03:29.3737295Z         "doc",
2026-06-18T12:03:29.3737585Z         "impl",
2026-06-18T12:03:29.3737876Z         "unit"
2026-06-18T12:03:29.3738158Z       ],
2026-06-18T12:03:29.3738453Z       "stages": {
2026-06-18T12:03:29.3738748Z         "doc": {
2026-06-18T12:03:29.3739215Z           "complete": true,
2026-06-18T12:03:29.3739530Z           "evidence": [
2026-06-18T12:03:29.3739816Z             {
2026-06-18T12:03:29.3740131Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3740436Z               "line": 75
2026-06-18T12:03:29.3740744Z             }
2026-06-18T12:03:29.3741030Z           ]
2026-06-18T12:03:29.3741310Z         },
2026-06-18T12:03:29.3741606Z         "impl": {
2026-06-18T12:03:29.3741907Z           "complete": true,
2026-06-18T12:03:29.3742211Z           "evidence": [
2026-06-18T12:03:29.3742497Z             {
2026-06-18T12:03:29.3742918Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3743223Z               "line": 62
2026-06-18T12:03:29.3743507Z             },
2026-06-18T12:03:29.3743790Z             {
2026-06-18T12:03:29.3744197Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3744497Z               "line": 15
2026-06-18T12:03:29.3744783Z             },
2026-06-18T12:03:29.3745078Z             {
2026-06-18T12:03:29.3745480Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3745771Z               "line": 65
2026-06-18T12:03:29.3746064Z             },
2026-06-18T12:03:29.3746347Z             {
2026-06-18T12:03:29.3746759Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3747055Z               "line": 83
2026-06-18T12:03:29.3747345Z             },
2026-06-18T12:03:29.3747635Z             {
2026-06-18T12:03:29.3748033Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3748333Z               "line": 183
2026-06-18T12:03:29.3748619Z             },
2026-06-18T12:03:29.3748897Z             {
2026-06-18T12:03:29.3749395Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3749823Z               "line": 527
2026-06-18T12:03:29.3750118Z             },
2026-06-18T12:03:29.3750400Z             {
2026-06-18T12:03:29.3750825Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3751129Z               "line": 553
2026-06-18T12:03:29.3751417Z             },
2026-06-18T12:03:29.3751708Z             {
2026-06-18T12:03:29.3752108Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3752514Z               "line": 671
2026-06-18T12:03:29.3752801Z             },
2026-06-18T12:03:29.3753086Z             {
2026-06-18T12:03:29.3753492Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3753798Z               "line": 696
2026-06-18T12:03:29.3754096Z             },
2026-06-18T12:03:29.3754380Z             {
2026-06-18T12:03:29.3754791Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3755091Z               "line": 719
2026-06-18T12:03:29.3755372Z             },
2026-06-18T12:03:29.3755678Z             {
2026-06-18T12:03:29.3756078Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3756379Z               "line": 734
2026-06-18T12:03:29.3756662Z             },
2026-06-18T12:03:29.3756951Z             {
2026-06-18T12:03:29.3757295Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3757605Z               "line": 5406
2026-06-18T12:03:29.3757886Z             },
2026-06-18T12:03:29.3758177Z             {
2026-06-18T12:03:29.3758545Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3758855Z               "line": 5420
2026-06-18T12:03:29.3759193Z             },
2026-06-18T12:03:29.3759477Z             {
2026-06-18T12:03:29.3759830Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3760126Z               "line": 5454
2026-06-18T12:03:29.3760416Z             }
2026-06-18T12:03:29.3760712Z           ]
2026-06-18T12:03:29.3760989Z         },
2026-06-18T12:03:29.3761279Z         "int": {
2026-06-18T12:03:29.3761604Z           "complete": false,
2026-06-18T12:03:29.3761906Z           "evidence": []
2026-06-18T12:03:29.3762188Z         },
2026-06-18T12:03:29.3762474Z         "unit": {
2026-06-18T12:03:29.3762793Z           "complete": true,
2026-06-18T12:03:29.3763098Z           "evidence": [
2026-06-18T12:03:29.3763390Z             {
2026-06-18T12:03:29.3763799Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.3764104Z               "line": 921
2026-06-18T12:03:29.3764400Z             },
2026-06-18T12:03:29.3764684Z             {
2026-06-18T12:03:29.3765093Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3765388Z               "line": 211
2026-06-18T12:03:29.3765675Z             },
2026-06-18T12:03:29.3765951Z             {
2026-06-18T12:03:29.3766361Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3766657Z               "line": 272
2026-06-18T12:03:29.3766943Z             },
2026-06-18T12:03:29.3767232Z             {
2026-06-18T12:03:29.3767651Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3767960Z               "line": 313
2026-06-18T12:03:29.3768241Z             },
2026-06-18T12:03:29.3768533Z             {
2026-06-18T12:03:29.3768927Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3769314Z               "line": 325
2026-06-18T12:03:29.3769609Z             },
2026-06-18T12:03:29.3769900Z             {
2026-06-18T12:03:29.3770304Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3770604Z               "line": 336
2026-06-18T12:03:29.3770891Z             },
2026-06-18T12:03:29.3771172Z             {
2026-06-18T12:03:29.3771577Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3771882Z               "line": 345
2026-06-18T12:03:29.3772154Z             },
2026-06-18T12:03:29.3772443Z             {
2026-06-18T12:03:29.3772833Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3773258Z               "line": 361
2026-06-18T12:03:29.3773538Z             },
2026-06-18T12:03:29.3773829Z             {
2026-06-18T12:03:29.3774236Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3774531Z               "line": 444
2026-06-18T12:03:29.3774817Z             },
2026-06-18T12:03:29.3775101Z             {
2026-06-18T12:03:29.3775509Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3775911Z               "line": 958
2026-06-18T12:03:29.3776201Z             },
2026-06-18T12:03:29.3776483Z             {
2026-06-18T12:03:29.3776879Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3777189Z               "line": 982
2026-06-18T12:03:29.3777461Z             },
2026-06-18T12:03:29.3777745Z             {
2026-06-18T12:03:29.3778154Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3778463Z               "line": 1008
2026-06-18T12:03:29.3778754Z             },
2026-06-18T12:03:29.3779126Z             {
2026-06-18T12:03:29.3779531Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3779830Z               "line": 1027
2026-06-18T12:03:29.3780122Z             },
2026-06-18T12:03:29.3780413Z             {
2026-06-18T12:03:29.3780808Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3781118Z               "line": 1058
2026-06-18T12:03:29.3781404Z             },
2026-06-18T12:03:29.3781709Z             {
2026-06-18T12:03:29.3782100Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.3782399Z               "line": 309
2026-06-18T12:03:29.3782690Z             },
2026-06-18T12:03:29.3782971Z             {
2026-06-18T12:03:29.3783332Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.3783637Z               "line": 606
2026-06-18T12:03:29.3783913Z             },
2026-06-18T12:03:29.3784200Z             {
2026-06-18T12:03:29.3784552Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3784858Z               "line": 8380
2026-06-18T12:03:29.3785140Z             },
2026-06-18T12:03:29.3785421Z             {
2026-06-18T12:03:29.3785767Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3786079Z               "line": 9328
2026-06-18T12:03:29.3786360Z             }
2026-06-18T12:03:29.3786655Z           ]
2026-06-18T12:03:29.3786947Z         }
2026-06-18T12:03:29.3787223Z       }
2026-06-18T12:03:29.3787509Z     },
2026-06-18T12:03:29.3787791Z     {
2026-06-18T12:03:29.3788120Z       "id": "REQ-MANIFEST-3",
2026-06-18T12:03:29.3790096Z       "title": "Adapter strings — [strings] KV tree, dot-path get-string resolving through the profile leaf-replace overlay, set-string editing a local profile's [strings] only; data-only (nothing executes a string)",
2026-06-18T12:03:29.3790425Z       "requiredStages": [
2026-06-18T12:03:29.3790720Z         "doc",
2026-06-18T12:03:29.3791001Z         "impl",
2026-06-18T12:03:29.3791292Z         "unit"
2026-06-18T12:03:29.3791578Z       ],
2026-06-18T12:03:29.3791883Z       "stages": {
2026-06-18T12:03:29.3792165Z         "doc": {
2026-06-18T12:03:29.3792480Z           "complete": true,
2026-06-18T12:03:29.3792780Z           "evidence": [
2026-06-18T12:03:29.3793070Z             {
2026-06-18T12:03:29.3793397Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3793691Z               "line": 81
2026-06-18T12:03:29.3793977Z             }
2026-06-18T12:03:29.3794258Z           ]
2026-06-18T12:03:29.3794564Z         },
2026-06-18T12:03:29.3794865Z         "impl": {
2026-06-18T12:03:29.3795174Z           "complete": true,
2026-06-18T12:03:29.3795474Z           "evidence": [
2026-06-18T12:03:29.3795766Z             {
2026-06-18T12:03:29.3796179Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3796487Z               "line": 72
2026-06-18T12:03:29.3796769Z             },
2026-06-18T12:03:29.3797069Z             {
2026-06-18T12:03:29.3797478Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3797913Z               "line": 101
2026-06-18T12:03:29.3798199Z             },
2026-06-18T12:03:29.3798494Z             {
2026-06-18T12:03:29.3798903Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3799269Z               "line": 132
2026-06-18T12:03:29.3799559Z             },
2026-06-18T12:03:29.3799841Z             {
2026-06-18T12:03:29.3800251Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3800656Z               "line": 577
2026-06-18T12:03:29.3800946Z             },
2026-06-18T12:03:29.3801232Z             {
2026-06-18T12:03:29.3801632Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3801938Z               "line": 633
2026-06-18T12:03:29.3802224Z             },
2026-06-18T12:03:29.3802510Z             {
2026-06-18T12:03:29.3802853Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3803168Z               "line": 5467
2026-06-18T12:03:29.3803454Z             },
2026-06-18T12:03:29.3803736Z             {
2026-06-18T12:03:29.3804096Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3804395Z               "line": 5493
2026-06-18T12:03:29.3804681Z             }
2026-06-18T12:03:29.3804963Z           ]
2026-06-18T12:03:29.3805253Z         },
2026-06-18T12:03:29.3805534Z         "int": {
2026-06-18T12:03:29.3805848Z           "complete": false,
2026-06-18T12:03:29.3806153Z           "evidence": []
2026-06-18T12:03:29.3806431Z         },
2026-06-18T12:03:29.3806739Z         "unit": {
2026-06-18T12:03:29.3807042Z           "complete": true,
2026-06-18T12:03:29.3807348Z           "evidence": [
2026-06-18T12:03:29.3807634Z             {
2026-06-18T12:03:29.3808048Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3808353Z               "line": 371
2026-06-18T12:03:29.3808634Z             },
2026-06-18T12:03:29.3808916Z             {
2026-06-18T12:03:29.3809382Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3809680Z               "line": 429
2026-06-18T12:03:29.3809976Z             },
2026-06-18T12:03:29.3810248Z             {
2026-06-18T12:03:29.3810653Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3810958Z               "line": 1082
2026-06-18T12:03:29.3811254Z             },
2026-06-18T12:03:29.3811526Z             {
2026-06-18T12:03:29.3811883Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.3812193Z               "line": 8473
2026-06-18T12:03:29.3812483Z             }
2026-06-18T12:03:29.3812765Z           ]
2026-06-18T12:03:29.3813046Z         }
2026-06-18T12:03:29.3813323Z       }
2026-06-18T12:03:29.3813600Z     },
2026-06-18T12:03:29.3813886Z     {
2026-06-18T12:03:29.3814210Z       "id": "REQ-MANIFEST-4",
2026-06-18T12:03:29.3816290Z       "title": "Keyword hints — [[hints]] {keywords (literal/regex), text}; spt api hint --session emits at most one matched hint per message, once per session (seen-set), declaration-order first match; profiles overlay [[hints]] by leaf-replace",
2026-06-18T12:03:29.3816623Z       "requiredStages": [
2026-06-18T12:03:29.3816910Z         "doc",
2026-06-18T12:03:29.3817201Z         "impl",
2026-06-18T12:03:29.3817485Z         "unit"
2026-06-18T12:03:29.3817774Z       ],
2026-06-18T12:03:29.3818070Z       "stages": {
2026-06-18T12:03:29.3818346Z         "doc": {
2026-06-18T12:03:29.3818666Z           "complete": true,
2026-06-18T12:03:29.3819048Z           "evidence": [
2026-06-18T12:03:29.3819363Z             {
2026-06-18T12:03:29.3819692Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3819981Z               "line": 88
2026-06-18T12:03:29.3820268Z             }
2026-06-18T12:03:29.3820550Z           ]
2026-06-18T12:03:29.3820831Z         },
2026-06-18T12:03:29.3821109Z         "impl": {
2026-06-18T12:03:29.3821423Z           "complete": true,
2026-06-18T12:03:29.3821733Z           "evidence": [
2026-06-18T12:03:29.3822010Z             {
2026-06-18T12:03:29.3822429Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3822867Z               "line": 80
2026-06-18T12:03:29.3823157Z             },
2026-06-18T12:03:29.3823434Z             {
2026-06-18T12:03:29.3823840Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3824150Z               "line": 163
2026-06-18T12:03:29.3824431Z             },
2026-06-18T12:03:29.3824726Z             {
2026-06-18T12:03:29.3825111Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.3825506Z               "line": 83
2026-06-18T12:03:29.3825792Z             },
2026-06-18T12:03:29.3826073Z             {
2026-06-18T12:03:29.3826473Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.3826774Z               "line": 625
2026-06-18T12:03:29.3827079Z             },
2026-06-18T12:03:29.3827380Z             {
2026-06-18T12:03:29.3827780Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.3828064Z               "line": 650
2026-06-18T12:03:29.3828353Z             }
2026-06-18T12:03:29.3828650Z           ]
2026-06-18T12:03:29.3828925Z         },
2026-06-18T12:03:29.3829298Z         "int": {
2026-06-18T12:03:29.3829613Z           "complete": false,
2026-06-18T12:03:29.3829919Z           "evidence": []
2026-06-18T12:03:29.3830199Z         },
2026-06-18T12:03:29.3830488Z         "unit": {
2026-06-18T12:03:29.3830796Z           "complete": true,
2026-06-18T12:03:29.3831081Z           "evidence": [
2026-06-18T12:03:29.3831364Z             {
2026-06-18T12:03:29.3831778Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3832088Z               "line": 1242
2026-06-18T12:03:29.3832374Z             },
2026-06-18T12:03:29.3832651Z             {
2026-06-18T12:03:29.3833047Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3833341Z               "line": 1275
2026-06-18T12:03:29.3833627Z             },
2026-06-18T12:03:29.3833918Z             {
2026-06-18T12:03:29.3834314Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.3834623Z               "line": 984
2026-06-18T12:03:29.3834900Z             }
2026-06-18T12:03:29.3835196Z           ]
2026-06-18T12:03:29.3835472Z         }
2026-06-18T12:03:29.3835766Z       }
2026-06-18T12:03:29.3836042Z     },
2026-06-18T12:03:29.3836328Z     {
2026-06-18T12:03:29.3836643Z       "id": "REQ-MANIFEST-5",
2026-06-18T12:03:29.3845413Z       "title": "File-backed adapter [strings] (M12-W3-T3.1): a [strings] dot-path value MAY be an inline-table FILE POINTER `key = { file = \"rel/path\" }` resolved to the file's contents at get-string time, keeping large bodies (skill-instructions, hint text) out of the manifest. A value-position table with a `file` key IS the pointer form (reserved — cannot double as data). Per-adapter aux storage `adapters/<adapter>/strings/`; pointers resolve relative to it with CONTAINMENT (reject `..`/absolute escaping the dir). UPDATE-SAFETY: a LOCAL profile's file-pointers resolve relative to the user-owned local-profile dir (NOT adapter-shipped strings/, which adapter updates overwrite), or the local profile inlines. Validate-at-register (fail-fast on a bad/escaping/missing pointer) + LAZY read at get-string (live file edits reflect, no re-register) + skip-diagnostics on missing-at-read (no hard-crash, mirrors [digest]). Rides the same leaf-replace profile overlay as the rest of [strings].",
2026-06-18T12:03:29.3845775Z       "requiredStages": [
2026-06-18T12:03:29.3846065Z         "doc",
2026-06-18T12:03:29.3846355Z         "impl",
2026-06-18T12:03:29.3846665Z         "unit"
2026-06-18T12:03:29.3846950Z       ],
2026-06-18T12:03:29.3847232Z       "stages": {
2026-06-18T12:03:29.3847523Z         "doc": {
2026-06-18T12:03:29.3847837Z           "complete": true,
2026-06-18T12:03:29.3848138Z           "evidence": [
2026-06-18T12:03:29.3848423Z             {
2026-06-18T12:03:29.3848748Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3849137Z               "line": 83
2026-06-18T12:03:29.3849416Z             }
2026-06-18T12:03:29.3849702Z           ]
2026-06-18T12:03:29.3850113Z         },
2026-06-18T12:03:29.3850404Z         "impl": {
2026-06-18T12:03:29.3850714Z           "complete": true,
2026-06-18T12:03:29.3851014Z           "evidence": [
2026-06-18T12:03:29.3851295Z             {
2026-06-18T12:03:29.3851714Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3852012Z               "line": 120
2026-06-18T12:03:29.3852302Z             }
2026-06-18T12:03:29.3852598Z           ]
2026-06-18T12:03:29.3852971Z         },
2026-06-18T12:03:29.3853266Z         "int": {
2026-06-18T12:03:29.3853571Z           "complete": false,
2026-06-18T12:03:29.3857492Z           "evidence": []
2026-06-18T12:03:29.3857802Z         },
2026-06-18T12:03:29.3858102Z         "unit": {
2026-06-18T12:03:29.3858421Z           "complete": true,
2026-06-18T12:03:29.3858712Z           "evidence": [
2026-06-18T12:03:29.3859089Z             {
2026-06-18T12:03:29.3859507Z               "path": "crates/spt-runtime/src/profile.rs",
2026-06-18T12:03:29.3859819Z               "line": 404
2026-06-18T12:03:29.3860111Z             },
2026-06-18T12:03:29.3860397Z             {
2026-06-18T12:03:29.3860815Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3861126Z               "line": 1155
2026-06-18T12:03:29.3861416Z             },
2026-06-18T12:03:29.3861698Z             {
2026-06-18T12:03:29.3862112Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3862424Z               "line": 1184
2026-06-18T12:03:29.3862724Z             },
2026-06-18T12:03:29.3863011Z             {
2026-06-18T12:03:29.3863425Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3863735Z               "line": 1224
2026-06-18T12:03:29.3864017Z             },
2026-06-18T12:03:29.3864302Z             {
2026-06-18T12:03:29.3864737Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3865035Z               "line": 1239
2026-06-18T12:03:29.3865317Z             }
2026-06-18T12:03:29.3865599Z           ]
2026-06-18T12:03:29.3865885Z         }
2026-06-18T12:03:29.3866167Z       }
2026-06-18T12:03:29.3866448Z     },
2026-06-18T12:03:29.3866730Z     {
2026-06-18T12:03:29.3867050Z       "id": "REQ-MANIFEST-6",
2026-06-18T12:03:29.3873486Z       "title": "Cross-adapter fallback target addressing (M12-W3-T3.2): a cross-adapter fallback target is addressed as `<adapter>:<profile>` (not just a bare adapter_name), resolved through the one composite-addressing resolver (registry::resolve_option) at every adapter-option read site so a fallback may select a shipped/local profile (e.g. a `ccs` profile). CONTEXT.md §cross-adapter-fallback reconciled (\"ccs is a profile; cross-adapter fallback may target <adapter>:<profile>\"). Contract-only this milestone: the node-wide fallback SETTING + its rate-limit invocation are deferred to the consuming milestone (the runtime path does not exist yet); this REQ guarantees the ADDRESSING resolves.",
2026-06-18T12:03:29.3873833Z       "requiredStages": [
2026-06-18T12:03:29.3874111Z         "doc",
2026-06-18T12:03:29.3874426Z         "unit"
2026-06-18T12:03:29.3874701Z       ],
2026-06-18T12:03:29.3874997Z       "stages": {
2026-06-18T12:03:29.3875283Z         "doc": {
2026-06-18T12:03:29.3875605Z           "complete": true,
2026-06-18T12:03:29.3875906Z           "evidence": [
2026-06-18T12:03:29.3876192Z             {
2026-06-18T12:03:29.3876521Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3876822Z               "line": 141
2026-06-18T12:03:29.3877132Z             }
2026-06-18T12:03:29.3877422Z           ]
2026-06-18T12:03:29.3877704Z         },
2026-06-18T12:03:29.3877998Z         "impl": {
2026-06-18T12:03:29.3878302Z           "complete": false,
2026-06-18T12:03:29.3878607Z           "evidence": []
2026-06-18T12:03:29.3878898Z         },
2026-06-18T12:03:29.3879251Z         "int": {
2026-06-18T12:03:29.3879551Z           "complete": false,
2026-06-18T12:03:29.3879847Z           "evidence": []
2026-06-18T12:03:29.3880128Z         },
2026-06-18T12:03:29.3880414Z         "unit": {
2026-06-18T12:03:29.3880884Z           "complete": true,
2026-06-18T12:03:29.3881188Z           "evidence": [
2026-06-18T12:03:29.3881479Z             {
2026-06-18T12:03:29.3881879Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.3882189Z               "line": 1261
2026-06-18T12:03:29.3882471Z             }
2026-06-18T12:03:29.3882752Z           ]
2026-06-18T12:03:29.3883039Z         }
2026-06-18T12:03:29.3883312Z       }
2026-06-18T12:03:29.3883711Z     },
2026-06-18T12:03:29.3883988Z     {
2026-06-18T12:03:29.3884317Z       "id": "REQ-MANIFEST-7",
2026-06-18T12:03:29.3893115Z       "title": "Adapter-declared shortcut basename (M12-W2 follow-on): an optional `[adapter] shortcut_basename` manifest field names the basename the `spt endpoint run` picker bakes into the generated `<basename>-<id>` launcher shortcut (REQ-RUN-SHORTCUT). Absent ⇒ the harness-agnostic default `spt` (→ `spt-<id>`); an adapter sets it to brand its shortcuts (claude-spt → `cc` → `cc-<id>`), so the Claude-Code-ness lives in the PUBLISHED adapter manifest, never hardcoded in spt-core. The picker reads it from the RESOLVED manifest of the selected adapter (registry::resolve_option), falling back to `spt` when absent/empty/unresolvable. Additive + N-1-safe (serde-default Option, omitted from serialization when absent; old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). Documented in docs/MANIFEST.md `[adapter]` section + the claude-spt worked example — the adapter-author contract perri builds spt-claude-code against.",
2026-06-18T12:03:29.3893493Z       "requiredStages": [
2026-06-18T12:03:29.3893773Z         "doc",
2026-06-18T12:03:29.3894053Z         "impl",
2026-06-18T12:03:29.3894339Z         "unit"
2026-06-18T12:03:29.3894621Z       ],
2026-06-18T12:03:29.3894916Z       "stages": {
2026-06-18T12:03:29.3895197Z         "doc": {
2026-06-18T12:03:29.3895507Z           "complete": true,
2026-06-18T12:03:29.3895802Z           "evidence": [
2026-06-18T12:03:29.3896112Z             {
2026-06-18T12:03:29.3896452Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.3896749Z               "line": 35
2026-06-18T12:03:29.3897045Z             }
2026-06-18T12:03:29.3897317Z           ]
2026-06-18T12:03:29.3897613Z         },
2026-06-18T12:03:29.3897889Z         "impl": {
2026-06-18T12:03:29.3898209Z           "complete": true,
2026-06-18T12:03:29.3898514Z           "evidence": [
2026-06-18T12:03:29.3898801Z             {
2026-06-18T12:03:29.3899292Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T12:03:29.3899584Z               "line": 54
2026-06-18T12:03:29.3899879Z             }
2026-06-18T12:03:29.3900165Z           ]
2026-06-18T12:03:29.3900442Z         },
2026-06-18T12:03:29.3900728Z         "int": {
2026-06-18T12:03:29.3901043Z           "complete": false,
2026-06-18T12:03:29.3901349Z           "evidence": []
2026-06-18T12:03:29.3901631Z         },
2026-06-18T12:03:29.3901924Z         "unit": {
2026-06-18T12:03:29.3902227Z           "complete": true,
2026-06-18T12:03:29.3902536Z           "evidence": [
2026-06-18T12:03:29.3902817Z             {
2026-06-18T12:03:29.3903224Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3903534Z               "line": 1435
2026-06-18T12:03:29.3903815Z             }
2026-06-18T12:03:29.3904101Z           ]
2026-06-18T12:03:29.3904386Z         }
2026-06-18T12:03:29.3904669Z       }
2026-06-18T12:03:29.3904956Z     },
2026-06-18T12:03:29.3905237Z     {
2026-06-18T12:03:29.3905561Z       "id": "REQ-MANIFEST-8",
2026-06-18T12:03:29.3911890Z       "title": "[adapter] host_binaries declares the harness executable basenames a kind=\"harness\" adapter hosts agents inside (e.g. host_binaries = [\"claude\"]); bind-time pid→exe-basename match (case-insensitive, .exe-stripped) over the seed's parent_pid selects the candidate adapter set; zero matches → a friendly error naming the binary + the --adapter escape hatch. Additive + N-1-safe: optional Vec<String>, #[serde(default, skip_serializing_if = \"Vec::is_empty\")] (omitted-serialized like shortcut_basename, old manifests parse clean); manifest.schema.json regenerated from the derive (ADR-0001, CI drift-gated). The match-key for ADR-0021 adapter-agnostic bind-time resolution. (v0.9.0)",
2026-06-18T12:03:29.3912356Z       "requiredStages": [
2026-06-18T12:03:29.3912653Z         "doc",
2026-06-18T12:03:29.3912935Z         "impl",
2026-06-18T12:03:29.3913226Z         "unit",
2026-06-18T12:03:29.3913630Z         "int"
2026-06-18T12:03:29.3913912Z       ],
2026-06-18T12:03:29.3914208Z       "stages": {
2026-06-18T12:03:29.3914494Z         "doc": {
2026-06-18T12:03:29.3914809Z           "complete": true,
2026-06-18T12:03:29.3915103Z           "evidence": [
2026-06-18T12:03:29.3915387Z             {
2026-06-18T12:03:29.3915717Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.3916017Z               "line": 184
2026-06-18T12:03:29.3916293Z             },
2026-06-18T12:03:29.3916579Z             {
2026-06-18T12:03:29.3916927Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.3917228Z               "line": 46
2026-06-18T12:03:29.3917513Z             }
2026-06-18T12:03:29.3917798Z           ]
2026-06-18T12:03:29.3918076Z         },
2026-06-18T12:03:29.3918377Z         "impl": {
2026-06-18T12:03:29.3918681Z           "complete": true,
2026-06-18T12:03:29.3919034Z           "evidence": [
2026-06-18T12:03:29.3919315Z             {
2026-06-18T12:03:29.3919734Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3920044Z               "line": 222
2026-06-18T12:03:29.3920327Z             },
2026-06-18T12:03:29.3920614Z             {
2026-06-18T12:03:29.3920994Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.3921295Z               "line": 306
2026-06-18T12:03:29.3921582Z             }
2026-06-18T12:03:29.3921863Z           ]
2026-06-18T12:03:29.3922159Z         },
2026-06-18T12:03:29.3922441Z         "int": {
2026-06-18T12:03:29.3922761Z           "complete": true,
2026-06-18T12:03:29.3923054Z           "evidence": [
2026-06-18T12:03:29.3923342Z             {
2026-06-18T12:03:29.3923748Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-18T12:03:29.3924053Z               "line": 18
2026-06-18T12:03:29.3924345Z             }
2026-06-18T12:03:29.3924625Z           ]
2026-06-18T12:03:29.3924911Z         },
2026-06-18T12:03:29.3925197Z         "unit": {
2026-06-18T12:03:29.3925515Z           "complete": true,
2026-06-18T12:03:29.3925813Z           "evidence": [
2026-06-18T12:03:29.3926109Z             {
2026-06-18T12:03:29.3926519Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.3926819Z               "line": 1453
2026-06-18T12:03:29.3927106Z             },
2026-06-18T12:03:29.3927387Z             {
2026-06-18T12:03:29.3927793Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3928083Z               "line": 316
2026-06-18T12:03:29.3928378Z             },
2026-06-18T12:03:29.3928664Z             {
2026-06-18T12:03:29.3929146Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3929442Z               "line": 332
2026-06-18T12:03:29.3929727Z             },
2026-06-18T12:03:29.3930018Z             {
2026-06-18T12:03:29.3930429Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.3930732Z               "line": 345
2026-06-18T12:03:29.3931031Z             },
2026-06-18T12:03:29.3931307Z             {
2026-06-18T12:03:29.3931694Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.3931995Z               "line": 422
2026-06-18T12:03:29.3932275Z             },
2026-06-18T12:03:29.3932551Z             {
2026-06-18T12:03:29.3932919Z               "path": "crates/spt-store/src/proc.rs",
2026-06-18T12:03:29.3933220Z               "line": 436
2026-06-18T12:03:29.3933461Z             }
2026-06-18T12:03:29.3933718Z           ]
2026-06-18T12:03:29.3933975Z         }
2026-06-18T12:03:29.3934232Z       }
2026-06-18T12:03:29.3934489Z     },
2026-06-18T12:03:29.3934746Z     {
2026-06-18T12:03:29.3935166Z       "id": "REQ-MESH-1",
2026-06-18T12:03:29.3940583Z       "title": "Membership proof (seed-proof): symmetric current-epoch seed-knowledge replaces is_trusted at EVERY inbound gate (registry apply, WAN receive, sync, notif, connection accept). MK = HKDF(seed, domain ‖ subnet_id ‖ seed_epoch); mutual channel-bound challenge-response at connect (transcript binds both handshake-proven node pubkeys, both nonces, subnet_id, seed_epoch, role); verified once per connection, cached on the broker ConnEntry, kept warm via QUIC keep-alive so re-proof is restart/partition/rotation-only. Exact-epoch match (re-seed is the sole N-1 exception). SECURITY INVARIANTS: channel-bound (no cross-connection replay), mutual, accepts a member it never paired (the mesh property).",
2026-06-18T12:03:29.3940951Z       "requiredStages": [
2026-06-18T12:03:29.3941131Z         "impl",
2026-06-18T12:03:29.3941298Z         "unit",
2026-06-18T12:03:29.3941462Z         "int"
2026-06-18T12:03:29.3941620Z       ],
2026-06-18T12:03:29.3941814Z       "stages": {
2026-06-18T12:03:29.3941983Z         "doc": {
2026-06-18T12:03:29.3942167Z           "complete": false,
2026-06-18T12:03:29.3942358Z           "evidence": []
2026-06-18T12:03:29.3942516Z         },
2026-06-18T12:03:29.3942683Z         "impl": {
2026-06-18T12:03:29.3942859Z           "complete": true,
2026-06-18T12:03:29.3943045Z           "evidence": [
2026-06-18T12:03:29.3943208Z             {
2026-06-18T12:03:29.3943479Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.3943650Z               "line": 922
2026-06-18T12:03:29.3943794Z             },
2026-06-18T12:03:29.3943942Z             {
2026-06-18T12:03:29.3944212Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3944371Z               "line": 38
2026-06-18T12:03:29.3944520Z             },
2026-06-18T12:03:29.3944663Z             {
2026-06-18T12:03:29.3944936Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3945107Z               "line": 161
2026-06-18T12:03:29.3945260Z             },
2026-06-18T12:03:29.3945407Z             {
2026-06-18T12:03:29.3945683Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3945851Z               "line": 206
2026-06-18T12:03:29.3946003Z             },
2026-06-18T12:03:29.3946161Z             {
2026-06-18T12:03:29.3946419Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.3946583Z               "line": 57
2026-06-18T12:03:29.3946741Z             },
2026-06-18T12:03:29.3946886Z             {
2026-06-18T12:03:29.3947178Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3947334Z               "line": 24
2026-06-18T12:03:29.3947488Z             },
2026-06-18T12:03:29.3947634Z             {
2026-06-18T12:03:29.3947916Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3948083Z               "line": 142
2026-06-18T12:03:29.3948231Z             },
2026-06-18T12:03:29.3948380Z             {
2026-06-18T12:03:29.3948632Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3948779Z               "line": 162
2026-06-18T12:03:29.3948903Z             }
2026-06-18T12:03:29.3949093Z           ]
2026-06-18T12:03:29.3949218Z         },
2026-06-18T12:03:29.3949352Z         "int": {
2026-06-18T12:03:29.3949512Z           "complete": true,
2026-06-18T12:03:29.3949656Z           "evidence": [
2026-06-18T12:03:29.3949784Z             {
2026-06-18T12:03:29.3950042Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T12:03:29.3950179Z               "line": 67
2026-06-18T12:03:29.3950309Z             },
2026-06-18T12:03:29.3950432Z             {
2026-06-18T12:03:29.3950686Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T12:03:29.3950818Z               "line": 93
2026-06-18T12:03:29.3950943Z             },
2026-06-18T12:03:29.3951072Z             {
2026-06-18T12:03:29.3951310Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T12:03:29.3951564Z               "line": 117
2026-06-18T12:03:29.3951691Z             },
2026-06-18T12:03:29.3951819Z             {
2026-06-18T12:03:29.3952050Z               "path": "crates/spt-daemon/tests/seedproofx.rs",
2026-06-18T12:03:29.3952194Z               "line": 134
2026-06-18T12:03:29.3952318Z             }
2026-06-18T12:03:29.3952451Z           ]
2026-06-18T12:03:29.3952581Z         },
2026-06-18T12:03:29.3952805Z         "unit": {
2026-06-18T12:03:29.3952966Z           "complete": true,
2026-06-18T12:03:29.3953110Z           "evidence": [
2026-06-18T12:03:29.3953234Z             {
2026-06-18T12:03:29.3953468Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.3953619Z               "line": 427
2026-06-18T12:03:29.3953749Z             },
2026-06-18T12:03:29.3953877Z             {
2026-06-18T12:03:29.3954135Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3954278Z               "line": 376
2026-06-18T12:03:29.3954417Z             },
2026-06-18T12:03:29.3954544Z             {
2026-06-18T12:03:29.3954805Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3954946Z               "line": 412
2026-06-18T12:03:29.3955066Z             },
2026-06-18T12:03:29.3955195Z             {
2026-06-18T12:03:29.3955443Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3955585Z               "line": 427
2026-06-18T12:03:29.3955720Z             },
2026-06-18T12:03:29.3955848Z             {
2026-06-18T12:03:29.3956105Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3956238Z               "line": 438
2026-06-18T12:03:29.3956373Z             },
2026-06-18T12:03:29.3956486Z             {
2026-06-18T12:03:29.3956731Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3956868Z               "line": 449
2026-06-18T12:03:29.3956998Z             },
2026-06-18T12:03:29.3957129Z             {
2026-06-18T12:03:29.3957381Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3957513Z               "line": 460
2026-06-18T12:03:29.3957637Z             },
2026-06-18T12:03:29.3957766Z             {
2026-06-18T12:03:29.3958019Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3958156Z               "line": 496
2026-06-18T12:03:29.3958277Z             },
2026-06-18T12:03:29.3958405Z             {
2026-06-18T12:03:29.3958648Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3958786Z               "line": 519
2026-06-18T12:03:29.3958916Z             },
2026-06-18T12:03:29.3959120Z             {
2026-06-18T12:03:29.3959358Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.3959498Z               "line": 546
2026-06-18T12:03:29.3959621Z             }
2026-06-18T12:03:29.3959740Z           ]
2026-06-18T12:03:29.3959860Z         }
2026-06-18T12:03:29.3959992Z       }
2026-06-18T12:03:29.3960115Z     },
2026-06-18T12:03:29.3960240Z     {
2026-06-18T12:03:29.3960387Z       "id": "REQ-MESH-2",
2026-06-18T12:03:29.3966604Z       "title": "Member roster: node-level union-merge grow-set (per member: pubkey, label, machine_id, last-known address, last-seen — NOT the seed), the discovery directory the mesh dials by. Seeded IN FULL at pairing (seed-holder hands joiner the whole current roster, incl. offline members — folds in deferred pairing-time hostname capture + post-join address seeding); each node authors its own entry stamped with its lease_epoch, merged strictly-greater-wins (the node_label lease); exchanged only over seed-proof'd member connections; forgery-inert (a fake entry names a pubkey that still can't seed-proof). Removal needs a TOMBSTONE — a per-pubkey revoked marker that propagates, dominates the entry, gates admission (seed-proof ∧ ¬tombstoned), and prevents reinsert; cleared by a completed re-pair of that pubkey. Persists through silence (offline member keeps its entry).",
2026-06-18T12:03:29.3966928Z       "requiredStages": [
2026-06-18T12:03:29.3967056Z         "impl",
2026-06-18T12:03:29.3967176Z         "unit",
2026-06-18T12:03:29.3967295Z         "int"
2026-06-18T12:03:29.3967409Z       ],
2026-06-18T12:03:29.3967530Z       "stages": {
2026-06-18T12:03:29.3967657Z         "doc": {
2026-06-18T12:03:29.3967799Z           "complete": false,
2026-06-18T12:03:29.3967932Z           "evidence": []
2026-06-18T12:03:29.3968164Z         },
2026-06-18T12:03:29.3968284Z         "impl": {
2026-06-18T12:03:29.3968411Z           "complete": true,
2026-06-18T12:03:29.3968551Z           "evidence": [
2026-06-18T12:03:29.3968669Z             {
2026-06-18T12:03:29.3968885Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.3969104Z               "line": 757
2026-06-18T12:03:29.3969218Z             },
2026-06-18T12:03:29.3969336Z             {
2026-06-18T12:03:29.3969570Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3969714Z               "line": 118
2026-06-18T12:03:29.3969834Z             },
2026-06-18T12:03:29.3969938Z             {
2026-06-18T12:03:29.3970158Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3970281Z               "line": 347
2026-06-18T12:03:29.3970406Z             },
2026-06-18T12:03:29.3970520Z             {
2026-06-18T12:03:29.3970738Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3970886Z               "line": 389
2026-06-18T12:03:29.3970999Z             },
2026-06-18T12:03:29.3971120Z             {
2026-06-18T12:03:29.3971339Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3971467Z               "line": 403
2026-06-18T12:03:29.3971586Z             },
2026-06-18T12:03:29.3971692Z             {
2026-06-18T12:03:29.3971905Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3972036Z               "line": 492
2026-06-18T12:03:29.3972154Z             },
2026-06-18T12:03:29.3972268Z             {
2026-06-18T12:03:29.3972478Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3972607Z               "line": 507
2026-06-18T12:03:29.3972713Z             },
2026-06-18T12:03:29.3972821Z             {
2026-06-18T12:03:29.3973030Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.3973157Z               "line": 534
2026-06-18T12:03:29.3973262Z             },
2026-06-18T12:03:29.3973391Z             {
2026-06-18T12:03:29.3973624Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3973748Z               "line": 207
2026-06-18T12:03:29.3973866Z             },
2026-06-18T12:03:29.3973982Z             {
2026-06-18T12:03:29.3974201Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3974325Z               "line": 755
2026-06-18T12:03:29.3974444Z             },
2026-06-18T12:03:29.3974554Z             {
2026-06-18T12:03:29.3974768Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3974908Z               "line": 816
2026-06-18T12:03:29.3975025Z             },
2026-06-18T12:03:29.3975145Z             {
2026-06-18T12:03:29.3975359Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3975499Z               "line": 869
2026-06-18T12:03:29.3975622Z             },
2026-06-18T12:03:29.3975731Z             {
2026-06-18T12:03:29.3975948Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3976080Z               "line": 891
2026-06-18T12:03:29.3976201Z             },
2026-06-18T12:03:29.3976319Z             {
2026-06-18T12:03:29.3976511Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.3976644Z               "line": 122
2026-06-18T12:03:29.3976758Z             },
2026-06-18T12:03:29.3976878Z             {
2026-06-18T12:03:29.3977078Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3977211Z               "line": 44
2026-06-18T12:03:29.3977330Z             },
2026-06-18T12:03:29.3977564Z             {
2026-06-18T12:03:29.3977761Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3977888Z               "line": 184
2026-06-18T12:03:29.3978012Z             },
2026-06-18T12:03:29.3978123Z             {
2026-06-18T12:03:29.3978321Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3978454Z               "line": 211
2026-06-18T12:03:29.3978562Z             },
2026-06-18T12:03:29.3978811Z             {
2026-06-18T12:03:29.3979106Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3979239Z               "line": 251
2026-06-18T12:03:29.3979349Z             },
2026-06-18T12:03:29.3979459Z             {
2026-06-18T12:03:29.3979654Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3979788Z               "line": 275
2026-06-18T12:03:29.3979906Z             },
2026-06-18T12:03:29.3980013Z             {
2026-06-18T12:03:29.3980202Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3980341Z               "line": 289
2026-06-18T12:03:29.3980450Z             },
2026-06-18T12:03:29.3980560Z             {
2026-06-18T12:03:29.3980751Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3980884Z               "line": 300
2026-06-18T12:03:29.3980990Z             },
2026-06-18T12:03:29.3981103Z             {
2026-06-18T12:03:29.3981298Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3981441Z               "line": 313
2026-06-18T12:03:29.3981564Z             }
2026-06-18T12:03:29.3981671Z           ]
2026-06-18T12:03:29.3981789Z         },
2026-06-18T12:03:29.3981904Z         "int": {
2026-06-18T12:03:29.3982047Z           "complete": true,
2026-06-18T12:03:29.3982170Z           "evidence": [
2026-06-18T12:03:29.3982300Z             {
2026-06-18T12:03:29.3982543Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-18T12:03:29.3982671Z               "line": 116
2026-06-18T12:03:29.3982795Z             },
2026-06-18T12:03:29.3982906Z             {
2026-06-18T12:03:29.3983144Z               "path": "crates/spt-daemon/tests/rosterprop.rs",
2026-06-18T12:03:29.3983268Z               "line": 181
2026-06-18T12:03:29.3983390Z             }
2026-06-18T12:03:29.3983505Z           ]
2026-06-18T12:03:29.3983614Z         },
2026-06-18T12:03:29.3983736Z         "unit": {
2026-06-18T12:03:29.3983870Z           "complete": true,
2026-06-18T12:03:29.3983998Z           "evidence": [
2026-06-18T12:03:29.3984117Z             {
2026-06-18T12:03:29.3984341Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3984471Z               "line": 999
2026-06-18T12:03:29.3984585Z             },
2026-06-18T12:03:29.3984708Z             {
2026-06-18T12:03:29.3984928Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3985057Z               "line": 1016
2026-06-18T12:03:29.3985172Z             },
2026-06-18T12:03:29.3985286Z             {
2026-06-18T12:03:29.3985511Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3985643Z               "line": 1024
2026-06-18T12:03:29.3985768Z             },
2026-06-18T12:03:29.3985881Z             {
2026-06-18T12:03:29.3986098Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.3986234Z               "line": 1048
2026-06-18T12:03:29.3986347Z             },
2026-06-18T12:03:29.3986467Z             {
2026-06-18T12:03:29.3986703Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.3986833Z               "line": 1499
2026-06-18T12:03:29.3986941Z             },
2026-06-18T12:03:29.3987062Z             {
2026-06-18T12:03:29.3987261Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3987391Z               "line": 347
2026-06-18T12:03:29.3987514Z             },
2026-06-18T12:03:29.3987628Z             {
2026-06-18T12:03:29.3987824Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3987952Z               "line": 370
2026-06-18T12:03:29.3988181Z             },
2026-06-18T12:03:29.3988297Z             {
2026-06-18T12:03:29.3988496Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3988626Z               "line": 407
2026-06-18T12:03:29.3988735Z             },
2026-06-18T12:03:29.3988852Z             {
2026-06-18T12:03:29.3989137Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3989260Z               "line": 431
2026-06-18T12:03:29.3989484Z             },
2026-06-18T12:03:29.3989594Z             {
2026-06-18T12:03:29.3989789Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3989919Z               "line": 483
2026-06-18T12:03:29.3990038Z             },
2026-06-18T12:03:29.3990142Z             {
2026-06-18T12:03:29.3990343Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3990476Z               "line": 499
2026-06-18T12:03:29.3990578Z             },
2026-06-18T12:03:29.3990701Z             {
2026-06-18T12:03:29.3990902Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3991029Z               "line": 514
2026-06-18T12:03:29.3991144Z             },
2026-06-18T12:03:29.3991255Z             {
2026-06-18T12:03:29.3991444Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.3991569Z               "line": 531
2026-06-18T12:03:29.3991687Z             }
2026-06-18T12:03:29.3991796Z           ]
2026-06-18T12:03:29.3991921Z         }
2026-06-18T12:03:29.3992025Z       }
2026-06-18T12:03:29.3992139Z     },
2026-06-18T12:03:29.3992245Z     {
2026-06-18T12:03:29.3992382Z       "id": "REQ-MESH-3",
2026-06-18T12:03:29.3996300Z       "title": "Mesh row fan-out: registry rows stay OWN-AUTHORED; the only change is the push target widens from directly-paired peers to ALL roster members (a wider DIRECT fan-out, never a third-party relay). Every row/message still arrives from its author over a handshake → KNOWN-HAZARDS 7.5 (origin = handshake node) and 4.10 (eviction lease: any future update comes from that node itself, alive) PRESERVED VERBATIM. Closes the staggered A→B→C repro: C (roster-seeded with A at pairing) initiates to A, seed-proof admits C unpaired, A learns C, both push directly.",
2026-06-18T12:03:29.3996474Z       "requiredStages": [
2026-06-18T12:03:29.3996595Z         "impl",
2026-06-18T12:03:29.3996715Z         "unit",
2026-06-18T12:03:29.3996817Z         "int"
2026-06-18T12:03:29.3996932Z       ],
2026-06-18T12:03:29.3997074Z       "stages": {
2026-06-18T12:03:29.3997196Z         "doc": {
2026-06-18T12:03:29.3997350Z           "complete": false,
2026-06-18T12:03:29.3997477Z           "evidence": []
2026-06-18T12:03:29.3997602Z         },
2026-06-18T12:03:29.3997707Z         "impl": {
2026-06-18T12:03:29.3997850Z           "complete": true,
2026-06-18T12:03:29.3997975Z           "evidence": [
2026-06-18T12:03:29.3998084Z             {
2026-06-18T12:03:29.3998304Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.3998431Z               "line": 641
2026-06-18T12:03:29.3998581Z             }
2026-06-18T12:03:29.3998684Z           ]
2026-06-18T12:03:29.3998809Z         },
2026-06-18T12:03:29.3998919Z         "int": {
2026-06-18T12:03:29.3999109Z           "complete": true,
2026-06-18T12:03:29.3999239Z           "evidence": [
2026-06-18T12:03:29.3999351Z             {
2026-06-18T12:03:29.3999561Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-18T12:03:29.3999692Z               "line": 373
2026-06-18T12:03:29.3999816Z             },
2026-06-18T12:03:29.3999931Z             {
2026-06-18T12:03:29.4000140Z               "path": "crates/spt-daemon/tests/mesh.rs",
2026-06-18T12:03:29.4000274Z               "line": 436
2026-06-18T12:03:29.4000388Z             }
2026-06-18T12:03:29.4000494Z           ]
2026-06-18T12:03:29.4000593Z         },
2026-06-18T12:03:29.4000721Z         "unit": {
2026-06-18T12:03:29.4000856Z           "complete": true,
2026-06-18T12:03:29.4000989Z           "evidence": [
2026-06-18T12:03:29.4001099Z             {
2026-06-18T12:03:29.4001423Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.4001551Z               "line": 910
2026-06-18T12:03:29.4001661Z             }
2026-06-18T12:03:29.4001767Z           ]
2026-06-18T12:03:29.4001880Z         }
2026-06-18T12:03:29.4001995Z       }
2026-06-18T12:03:29.4002106Z     },
2026-06-18T12:03:29.4002209Z     {
2026-06-18T12:03:29.4002337Z       "id": "REQ-MESH-4",
2026-06-18T12:03:29.4007573Z       "title": "Revoke + timeboxed seed rotation + re-seed grace: `spt subnet revoke <node>...` (list, elevation-gated, revoke-only) writes roster tombstones immediately, then schedules ONE seed rotation (re-mint seed, bump seed_epoch, push new seed CONFIDENTIALLY over member-auth'd TLS connections — never in roster/registry gossip — force-drop revokees) at the close of a coalescing window (default 1h); further revokes in the window join the same rotation (one epoch bump). `--force-rotate-seed` rotates immediately (compromised-node path). RE-SEED GRACE: a node proving the immediately-prior epoch (N-1) AND still on the roster gets a re-seed-only restricted connection (auto-heals a benign offliner); revoked/off-roster denied; ≥2 stale → re-pair.",
2026-06-18T12:03:29.4007866Z       "requiredStages": [
2026-06-18T12:03:29.4007996Z         "impl",
2026-06-18T12:03:29.4008105Z         "unit",
2026-06-18T12:03:29.4008225Z         "int"
2026-06-18T12:03:29.4008334Z       ],
2026-06-18T12:03:29.4008463Z       "stages": {
2026-06-18T12:03:29.4008611Z         "doc": {
2026-06-18T12:03:29.4008748Z           "complete": false,
2026-06-18T12:03:29.4008878Z           "evidence": []
2026-06-18T12:03:29.4009063Z         },
2026-06-18T12:03:29.4009179Z         "impl": {
2026-06-18T12:03:29.4009325Z           "complete": true,
2026-06-18T12:03:29.4009474Z           "evidence": [
2026-06-18T12:03:29.4009597Z             {
2026-06-18T12:03:29.4009832Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.4009968Z               "line": 33
2026-06-18T12:03:29.4010102Z             },
2026-06-18T12:03:29.4010224Z             {
2026-06-18T12:03:29.4010438Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4010571Z               "line": 68
2026-06-18T12:03:29.4010695Z             },
2026-06-18T12:03:29.4010801Z             {
2026-06-18T12:03:29.4011030Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4011158Z               "line": 111
2026-06-18T12:03:29.4011286Z             },
2026-06-18T12:03:29.4011388Z             {
2026-06-18T12:03:29.4011620Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4011754Z               "line": 462
2026-06-18T12:03:29.4011868Z             },
2026-06-18T12:03:29.4011988Z             {
2026-06-18T12:03:29.4012211Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4012337Z               "line": 711
2026-06-18T12:03:29.4012454Z             },
2026-06-18T12:03:29.4012560Z             {
2026-06-18T12:03:29.4012788Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4012916Z               "line": 725
2026-06-18T12:03:29.4013032Z             },
2026-06-18T12:03:29.4013145Z             {
2026-06-18T12:03:29.4013341Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.4013469Z               "line": 132
2026-06-18T12:03:29.4013579Z             },
2026-06-18T12:03:29.4013704Z             {
2026-06-18T12:03:29.4013908Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4014042Z               "line": 26
2026-06-18T12:03:29.4014151Z             },
2026-06-18T12:03:29.4014267Z             {
2026-06-18T12:03:29.4014471Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4014601Z               "line": 97
2026-06-18T12:03:29.4014719Z             },
2026-06-18T12:03:29.4014819Z             {
2026-06-18T12:03:29.4015038Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4015166Z               "line": 119
2026-06-18T12:03:29.4015393Z             },
2026-06-18T12:03:29.4015512Z             {
2026-06-18T12:03:29.4015712Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4015846Z               "line": 82
2026-06-18T12:03:29.4015960Z             },
2026-06-18T12:03:29.4016078Z             {
2026-06-18T12:03:29.4016266Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4016398Z               "line": 111
2026-06-18T12:03:29.4016609Z             },
2026-06-18T12:03:29.4016708Z             {
2026-06-18T12:03:29.4016909Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4017037Z               "line": 232
2026-06-18T12:03:29.4017158Z             },
2026-06-18T12:03:29.4017271Z             {
2026-06-18T12:03:29.4017473Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4017609Z               "line": 245
2026-06-18T12:03:29.4017725Z             },
2026-06-18T12:03:29.4017835Z             {
2026-06-18T12:03:29.4018014Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4018147Z               "line": 4516
2026-06-18T12:03:29.4018255Z             }
2026-06-18T12:03:29.4018369Z           ]
2026-06-18T12:03:29.4018489Z         },
2026-06-18T12:03:29.4018598Z         "int": {
2026-06-18T12:03:29.4018737Z           "complete": true,
2026-06-18T12:03:29.4018866Z           "evidence": [
2026-06-18T12:03:29.4019085Z             {
2026-06-18T12:03:29.4019294Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-18T12:03:29.4019443Z               "line": 98
2026-06-18T12:03:29.4019557Z             },
2026-06-18T12:03:29.4019672Z             {
2026-06-18T12:03:29.4019886Z               "path": "crates/spt-daemon/tests/reseed.rs",
2026-06-18T12:03:29.4020001Z               "line": 140
2026-06-18T12:03:29.4020120Z             }
2026-06-18T12:03:29.4020224Z           ]
2026-06-18T12:03:29.4020335Z         },
2026-06-18T12:03:29.4020462Z         "unit": {
2026-06-18T12:03:29.4020594Z           "complete": true,
2026-06-18T12:03:29.4020719Z           "evidence": [
2026-06-18T12:03:29.4020836Z             {
2026-06-18T12:03:29.4021076Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.4021217Z               "line": 178
2026-06-18T12:03:29.4021328Z             },
2026-06-18T12:03:29.4021447Z             {
2026-06-18T12:03:29.4021680Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.4021813Z               "line": 242
2026-06-18T12:03:29.4021938Z             },
2026-06-18T12:03:29.4022052Z             {
2026-06-18T12:03:29.4022272Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4022401Z               "line": 1079
2026-06-18T12:03:29.4022510Z             },
2026-06-18T12:03:29.4022621Z             {
2026-06-18T12:03:29.4022849Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4022973Z               "line": 1109
2026-06-18T12:03:29.4023082Z             },
2026-06-18T12:03:29.4023207Z             {
2026-06-18T12:03:29.4023434Z               "path": "crates/spt-daemon/src/seedproofx.rs",
2026-06-18T12:03:29.4023563Z               "line": 1129
2026-06-18T12:03:29.4023672Z             },
2026-06-18T12:03:29.4023781Z             {
2026-06-18T12:03:29.4024015Z               "path": "crates/spt-net/src/net/mesh/seedproof.rs",
2026-06-18T12:03:29.4024140Z               "line": 602
2026-06-18T12:03:29.4024259Z             },
2026-06-18T12:03:29.4024377Z             {
2026-06-18T12:03:29.4024593Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4024721Z               "line": 148
2026-06-18T12:03:29.4028508Z             },
2026-06-18T12:03:29.4028656Z             {
2026-06-18T12:03:29.4028905Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4029168Z               "line": 169
2026-06-18T12:03:29.4029278Z             },
2026-06-18T12:03:29.4029397Z             {
2026-06-18T12:03:29.4029603Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4029893Z               "line": 181
2026-06-18T12:03:29.4030003Z             },
2026-06-18T12:03:29.4030127Z             {
2026-06-18T12:03:29.4030318Z               "path": "crates/spt-store/src/rotation.rs",
2026-06-18T12:03:29.4030446Z               "line": 202
2026-06-18T12:03:29.4030567Z             },
2026-06-18T12:03:29.4030675Z             {
2026-06-18T12:03:29.4030852Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4031093Z               "line": 375
2026-06-18T12:03:29.4031208Z             },
2026-06-18T12:03:29.4031330Z             {
2026-06-18T12:03:29.4031501Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4031626Z               "line": 407
2026-06-18T12:03:29.4031734Z             },
2026-06-18T12:03:29.4031845Z             {
2026-06-18T12:03:29.4031998Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4032130Z               "line": 9822
2026-06-18T12:03:29.4032255Z             }
2026-06-18T12:03:29.4032368Z           ]
2026-06-18T12:03:29.4032480Z         }
2026-06-18T12:03:29.4032584Z       }
2026-06-18T12:03:29.4032697Z     },
2026-06-18T12:03:29.4032804Z     {
2026-06-18T12:03:29.4032941Z       "id": "REQ-MESH-5",
2026-06-18T12:03:29.4034680Z       "title": "Hard cutover from pairwise trust: delete peers.json + the is_trusted authorization path (no migration — expendable test fleet, re-pairs fresh under the new model, user decision 2026-06-08). Warn-on-change DEMOTED from a gate to an awareness notice anchored on machine_id (not label): 'machine M, last seen as K1, now presents K2' — fires the same event as the REQ-SUBNET-7 re-pair overwrite. The TrustStore/peers.json code and its call sites are removed, not left dead.",
2026-06-18T12:03:29.4034838Z       "requiredStages": [
2026-06-18T12:03:29.4034971Z         "impl",
2026-06-18T12:03:29.4035087Z         "unit"
2026-06-18T12:03:29.4035191Z       ],
2026-06-18T12:03:29.4035314Z       "stages": {
2026-06-18T12:03:29.4035425Z         "doc": {
2026-06-18T12:03:29.4035586Z           "complete": false,
2026-06-18T12:03:29.4035716Z           "evidence": []
2026-06-18T12:03:29.4035834Z         },
2026-06-18T12:03:29.4035958Z         "impl": {
2026-06-18T12:03:29.4036088Z           "complete": true,
2026-06-18T12:03:29.4036220Z           "evidence": [
2026-06-18T12:03:29.4036334Z             {
2026-06-18T12:03:29.4036527Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4036646Z               "line": 61
2026-06-18T12:03:29.4036789Z             },
2026-06-18T12:03:29.4036908Z             {
2026-06-18T12:03:29.4037086Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4037213Z               "line": 109
2026-06-18T12:03:29.4037324Z             },
2026-06-18T12:03:29.4037442Z             {
2026-06-18T12:03:29.4037615Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4037748Z               "line": 104
2026-06-18T12:03:29.4037867Z             },
2026-06-18T12:03:29.4037987Z             {
2026-06-18T12:03:29.4038172Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4038297Z               "line": 105
2026-06-18T12:03:29.4038415Z             },
2026-06-18T12:03:29.4038526Z             {
2026-06-18T12:03:29.4038701Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4038831Z               "line": 85
2026-06-18T12:03:29.4038936Z             },
2026-06-18T12:03:29.4039177Z             {
2026-06-18T12:03:29.4039366Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4039499Z               "line": 250
2026-06-18T12:03:29.4039605Z             },
2026-06-18T12:03:29.4039714Z             {
2026-06-18T12:03:29.4039886Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4040014Z               "line": 314
2026-06-18T12:03:29.4040134Z             },
2026-06-18T12:03:29.4040243Z             {
2026-06-18T12:03:29.4040419Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4040663Z               "line": 767
2026-06-18T12:03:29.4040777Z             },
2026-06-18T12:03:29.4040892Z             {
2026-06-18T12:03:29.4041039Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.4041169Z               "line": 101
2026-06-18T12:03:29.4041278Z             },
2026-06-18T12:03:29.4041393Z             {
2026-06-18T12:03:29.4041536Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.4041763Z               "line": 193
2026-06-18T12:03:29.4041886Z             }
2026-06-18T12:03:29.4041984Z           ]
2026-06-18T12:03:29.4042104Z         },
2026-06-18T12:03:29.4042215Z         "int": {
2026-06-18T12:03:29.4042352Z           "complete": false,
2026-06-18T12:03:29.4042477Z           "evidence": []
2026-06-18T12:03:29.4042590Z         },
2026-06-18T12:03:29.4042710Z         "unit": {
2026-06-18T12:03:29.4042839Z           "complete": true,
2026-06-18T12:03:29.4042962Z           "evidence": [
2026-06-18T12:03:29.4043073Z             {
2026-06-18T12:03:29.4043253Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4043378Z               "line": 1009
2026-06-18T12:03:29.4043492Z             },
2026-06-18T12:03:29.4043606Z             {
2026-06-18T12:03:29.4043755Z               "path": "crates/spt-store/src/roster.rs",
2026-06-18T12:03:29.4043878Z               "line": 462
2026-06-18T12:03:29.4043984Z             }
2026-06-18T12:03:29.4044107Z           ]
2026-06-18T12:03:29.4044226Z         }
2026-06-18T12:03:29.4044332Z       }
2026-06-18T12:03:29.4044441Z     },
2026-06-18T12:03:29.4044549Z     {
2026-06-18T12:03:29.4044668Z       "id": "REQ-MESH-6",
2026-06-18T12:03:29.4046014Z       "title": "Concurrent liveness probes: `spt subnet status --nodes` fans out its offline/serve-probes (REQ-SUBNET-5) CONCURRENTLY — total wall-time bounded by the single-probe ceiling (~3s), never k×ceiling. The mesh makes a node see ALL members (many possibly offline), so a serial probe loop would be offline_count×3s. (Planning verifies the current REQ-SUBNET-5 probe loop's behavior and fixes it if serial.)",
2026-06-18T12:03:29.4046175Z       "requiredStages": [
2026-06-18T12:03:29.4046291Z         "impl",
2026-06-18T12:03:29.4046394Z         "unit"
2026-06-18T12:03:29.4046505Z       ],
2026-06-18T12:03:29.4046625Z       "stages": {
2026-06-18T12:03:29.4046746Z         "doc": {
2026-06-18T12:03:29.4046884Z           "complete": false,
2026-06-18T12:03:29.4047012Z           "evidence": []
2026-06-18T12:03:29.4047148Z         },
2026-06-18T12:03:29.4047264Z         "impl": {
2026-06-18T12:03:29.4047392Z           "complete": true,
2026-06-18T12:03:29.4047502Z           "evidence": [
2026-06-18T12:03:29.4047622Z             {
2026-06-18T12:03:29.4047774Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4047899Z               "line": 4039
2026-06-18T12:03:29.4048017Z             }
2026-06-18T12:03:29.4048127Z           ]
2026-06-18T12:03:29.4048251Z         },
2026-06-18T12:03:29.4048355Z         "int": {
2026-06-18T12:03:29.4048519Z           "complete": false,
2026-06-18T12:03:29.4048647Z           "evidence": []
2026-06-18T12:03:29.4048751Z         },
2026-06-18T12:03:29.4048871Z         "unit": {
2026-06-18T12:03:29.4049061Z           "complete": true,
2026-06-18T12:03:29.4049177Z           "evidence": [
2026-06-18T12:03:29.4049285Z             {
2026-06-18T12:03:29.4049434Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4049566Z               "line": 10355
2026-06-18T12:03:29.4049689Z             },
2026-06-18T12:03:29.4049800Z             {
2026-06-18T12:03:29.4049940Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4050064Z               "line": 10382
2026-06-18T12:03:29.4050170Z             },
2026-06-18T12:03:29.4050288Z             {
2026-06-18T12:03:29.4050437Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4050555Z               "line": 10406
2026-06-18T12:03:29.4050669Z             }
2026-06-18T12:03:29.4050780Z           ]
2026-06-18T12:03:29.4051018Z         }
2026-06-18T12:03:29.4051128Z       }
2026-06-18T12:03:29.4051247Z     },
2026-06-18T12:03:29.4051347Z     {
2026-06-18T12:03:29.4051480Z       "id": "REQ-MIGRATE-1",
2026-06-18T12:03:29.4051711Z       "title": "Auto-detect and migrate a legacy claude_skill_owl install",
2026-06-18T12:03:29.4051842Z       "requiredStages": [],
2026-06-18T12:03:29.4051963Z       "stages": {
2026-06-18T12:03:29.4052072Z         "doc": {
2026-06-18T12:03:29.4052304Z           "complete": false,
2026-06-18T12:03:29.4052436Z           "evidence": []
2026-06-18T12:03:29.4052554Z         },
2026-06-18T12:03:29.4052674Z         "impl": {
2026-06-18T12:03:29.4052798Z           "complete": false,
2026-06-18T12:03:29.4052927Z           "evidence": []
2026-06-18T12:03:29.4053032Z         },
2026-06-18T12:03:29.4053146Z         "int": {
2026-06-18T12:03:29.4053275Z           "complete": false,
2026-06-18T12:03:29.4053399Z           "evidence": []
2026-06-18T12:03:29.4053508Z         },
2026-06-18T12:03:29.4053628Z         "unit": {
2026-06-18T12:03:29.4053756Z           "complete": false,
2026-06-18T12:03:29.4053880Z           "evidence": []
2026-06-18T12:03:29.4054004Z         }
2026-06-18T12:03:29.4054114Z       }
2026-06-18T12:03:29.4054229Z     },
2026-06-18T12:03:29.4054333Z     {
2026-06-18T12:03:29.4054462Z       "id": "REQ-MSG-1",
2026-06-18T12:03:29.4054973Z       "title": "Local message delivery: TCP-first to a registered address, spool fallback when offline; id->address via registry (stale-clean first); reply routing (__REPLY_TO__)",
2026-06-18T12:03:29.4055123Z       "requiredStages": [
2026-06-18T12:03:29.4055238Z         "impl",
2026-06-18T12:03:29.4055358Z         "unit",
2026-06-18T12:03:29.4055472Z         "int"
2026-06-18T12:03:29.4055587Z       ],
2026-06-18T12:03:29.4055691Z       "stages": {
2026-06-18T12:03:29.4055805Z         "doc": {
2026-06-18T12:03:29.4055930Z           "complete": false,
2026-06-18T12:03:29.4056058Z           "evidence": []
2026-06-18T12:03:29.4056174Z         },
2026-06-18T12:03:29.4056301Z         "impl": {
2026-06-18T12:03:29.4056430Z           "complete": true,
2026-06-18T12:03:29.4056555Z           "evidence": [
2026-06-18T12:03:29.4056674Z             {
2026-06-18T12:03:29.4056822Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4056954Z               "line": 28
2026-06-18T12:03:29.4057060Z             },
2026-06-18T12:03:29.4057171Z             {
2026-06-18T12:03:29.4057330Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4057459Z               "line": 94
2026-06-18T12:03:29.4057582Z             },
2026-06-18T12:03:29.4057690Z             {
2026-06-18T12:03:29.4057848Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4057981Z               "line": 127
2026-06-18T12:03:29.4058086Z             },
2026-06-18T12:03:29.4058206Z             {
2026-06-18T12:03:29.4058362Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4058487Z               "line": 149
2026-06-18T12:03:29.4058605Z             },
2026-06-18T12:03:29.4058726Z             {
2026-06-18T12:03:29.4058878Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4059074Z               "line": 174
2026-06-18T12:03:29.4059198Z             },
2026-06-18T12:03:29.4059302Z             {
2026-06-18T12:03:29.4059455Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T12:03:29.4059578Z               "line": 18
2026-06-18T12:03:29.4059699Z             },
2026-06-18T12:03:29.4059816Z             {
2026-06-18T12:03:29.4059961Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.4060090Z               "line": 13
2026-06-18T12:03:29.4060198Z             },
2026-06-18T12:03:29.4060317Z             {
2026-06-18T12:03:29.4060458Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.4060581Z               "line": 62
2026-06-18T12:03:29.4060701Z             },
2026-06-18T12:03:29.4060805Z             {
2026-06-18T12:03:29.4060958Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4061187Z               "line": 13
2026-06-18T12:03:29.4061307Z             }
2026-06-18T12:03:29.4061417Z           ]
2026-06-18T12:03:29.4061535Z         },
2026-06-18T12:03:29.4061655Z         "int": {
2026-06-18T12:03:29.4061783Z           "complete": true,
2026-06-18T12:03:29.4061908Z           "evidence": [
2026-06-18T12:03:29.4062017Z             {
2026-06-18T12:03:29.4062193Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T12:03:29.4062412Z               "line": 9
2026-06-18T12:03:29.4062523Z             },
2026-06-18T12:03:29.4062642Z             {
2026-06-18T12:03:29.4062811Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T12:03:29.4062936Z               "line": 56
2026-06-18T12:03:29.4063048Z             },
2026-06-18T12:03:29.4063157Z             {
2026-06-18T12:03:29.4063330Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T12:03:29.4063462Z               "line": 113
2026-06-18T12:03:29.4063587Z             }
2026-06-18T12:03:29.4063687Z           ]
2026-06-18T12:03:29.4063806Z         },
2026-06-18T12:03:29.4063906Z         "unit": {
2026-06-18T12:03:29.4064039Z           "complete": true,
2026-06-18T12:03:29.4064155Z           "evidence": [
2026-06-18T12:03:29.4064269Z             {
2026-06-18T12:03:29.4064426Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4064536Z               "line": 203
2026-06-18T12:03:29.4064660Z             },
2026-06-18T12:03:29.4064765Z             {
2026-06-18T12:03:29.4064917Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4065046Z               "line": 232
2026-06-18T12:03:29.4065148Z             },
2026-06-18T12:03:29.4065260Z             {
2026-06-18T12:03:29.4065405Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4065523Z               "line": 277
2026-06-18T12:03:29.4065636Z             },
2026-06-18T12:03:29.4065755Z             {
2026-06-18T12:03:29.4065904Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4066017Z               "line": 300
2026-06-18T12:03:29.4066128Z             },
2026-06-18T12:03:29.4066242Z             {
2026-06-18T12:03:29.4066390Z               "path": "crates/spt-msg/src/deliver.rs",
2026-06-18T12:03:29.4066509Z               "line": 325
2026-06-18T12:03:29.4066623Z             },
2026-06-18T12:03:29.4066734Z             {
2026-06-18T12:03:29.4066886Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T12:03:29.4067019Z               "line": 204
2026-06-18T12:03:29.4067129Z             },
2026-06-18T12:03:29.4067243Z             {
2026-06-18T12:03:29.4067396Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T12:03:29.4067519Z               "line": 237
2026-06-18T12:03:29.4067620Z             },
2026-06-18T12:03:29.4067726Z             {
2026-06-18T12:03:29.4067886Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T12:03:29.4068000Z               "line": 251
2026-06-18T12:03:29.4068123Z             },
2026-06-18T12:03:29.4068227Z             {
2026-06-18T12:03:29.4068370Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T12:03:29.4068494Z               "line": 263
2026-06-18T12:03:29.4068603Z             },
2026-06-18T12:03:29.4068719Z             {
2026-06-18T12:03:29.4068865Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.4069052Z               "line": 162
2026-06-18T12:03:29.4069161Z             },
2026-06-18T12:03:29.4069282Z             {
2026-06-18T12:03:29.4069424Z               "path": "crates/spt-msg/src/ring.rs",
2026-06-18T12:03:29.4069543Z               "line": 242
2026-06-18T12:03:29.4069663Z             },
2026-06-18T12:03:29.4069772Z             {
2026-06-18T12:03:29.4069916Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4070034Z               "line": 134
2026-06-18T12:03:29.4070148Z             },
2026-06-18T12:03:29.4070264Z             {
2026-06-18T12:03:29.4070391Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4070641Z               "line": 153
2026-06-18T12:03:29.4070748Z             }
2026-06-18T12:03:29.4070867Z           ]
2026-06-18T12:03:29.4070967Z         }
2026-06-18T12:03:29.4071070Z       }
2026-06-18T12:03:29.4071175Z     },
2026-06-18T12:03:29.4071285Z     {
2026-06-18T12:03:29.4071413Z       "id": "REQ-MSG-2",
2026-06-18T12:03:29.4071737Z       "title": "spt binary CLI surface: send/ring/ready(+--once)/list/stop/whoami, stable arg shapes + exit codes",
2026-06-18T12:03:29.4071962Z       "requiredStages": [
2026-06-18T12:03:29.4072080Z         "impl",
2026-06-18T12:03:29.4072201Z         "unit"
2026-06-18T12:03:29.4072320Z       ],
2026-06-18T12:03:29.4072429Z       "stages": {
2026-06-18T12:03:29.4072554Z         "doc": {
2026-06-18T12:03:29.4072681Z           "complete": false,
2026-06-18T12:03:29.4072802Z           "evidence": []
2026-06-18T12:03:29.4072911Z         },
2026-06-18T12:03:29.4073025Z         "impl": {
2026-06-18T12:03:29.4073160Z           "complete": true,
2026-06-18T12:03:29.4073277Z           "evidence": [
2026-06-18T12:03:29.4073390Z             {
2026-06-18T12:03:29.4073534Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4073656Z               "line": 11
2026-06-18T12:03:29.4073770Z             },
2026-06-18T12:03:29.4073890Z             {
2026-06-18T12:03:29.4074047Z               "path": "crates/spt/src/main.rs",
2026-06-18T12:03:29.4074157Z               "line": 8
2026-06-18T12:03:29.4074294Z             }
2026-06-18T12:03:29.4074400Z           ]
2026-06-18T12:03:29.4074524Z         },
2026-06-18T12:03:29.4074638Z         "int": {
2026-06-18T12:03:29.4074758Z           "complete": false,
2026-06-18T12:03:29.4074891Z           "evidence": []
2026-06-18T12:03:29.4074995Z         },
2026-06-18T12:03:29.4075115Z         "unit": {
2026-06-18T12:03:29.4075239Z           "complete": true,
2026-06-18T12:03:29.4075359Z           "evidence": [
2026-06-18T12:03:29.4075467Z             {
2026-06-18T12:03:29.4075625Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4075755Z               "line": 7556
2026-06-18T12:03:29.4075868Z             },
2026-06-18T12:03:29.4075975Z             {
2026-06-18T12:03:29.4076116Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4076248Z               "line": 7598
2026-06-18T12:03:29.4076359Z             },
2026-06-18T12:03:29.4076473Z             {
2026-06-18T12:03:29.4076621Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4076745Z               "line": 7647
2026-06-18T12:03:29.4076854Z             },
2026-06-18T12:03:29.4076965Z             {
2026-06-18T12:03:29.4077098Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4077211Z               "line": 7670
2026-06-18T12:03:29.4077322Z             },
2026-06-18T12:03:29.4077436Z             {
2026-06-18T12:03:29.4077565Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4077689Z               "line": 9577
2026-06-18T12:03:29.4077794Z             },
2026-06-18T12:03:29.4077904Z             {
2026-06-18T12:03:29.4078046Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4078170Z               "line": 9586
2026-06-18T12:03:29.4078295Z             },
2026-06-18T12:03:29.4078404Z             {
2026-06-18T12:03:29.4078541Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4078655Z               "line": 9600
2026-06-18T12:03:29.4078772Z             }
2026-06-18T12:03:29.4078892Z           ]
2026-06-18T12:03:29.4079064Z         }
2026-06-18T12:03:29.4079177Z       }
2026-06-18T12:03:29.4079284Z     },
2026-06-18T12:03:29.4079392Z     {
2026-06-18T12:03:29.4079512Z       "id": "REQ-MSG-3",
2026-06-18T12:03:29.4079965Z       "title": "Ready-agent lifecycle: register perch (info.json + listener + registry address) on ready, drain spooled backlog on startup, clean teardown",
2026-06-18T12:03:29.4080093Z       "requiredStages": [
2026-06-18T12:03:29.4080204Z         "impl",
2026-06-18T12:03:29.4080332Z         "unit",
2026-06-18T12:03:29.4080547Z         "int"
2026-06-18T12:03:29.4080656Z       ],
2026-06-18T12:03:29.4080776Z       "stages": {
2026-06-18T12:03:29.4080895Z         "doc": {
2026-06-18T12:03:29.4081014Z           "complete": false,
2026-06-18T12:03:29.4081130Z           "evidence": []
2026-06-18T12:03:29.4081238Z         },
2026-06-18T12:03:29.4081351Z         "impl": {
2026-06-18T12:03:29.4081475Z           "complete": true,
2026-06-18T12:03:29.4081592Z           "evidence": [
2026-06-18T12:03:29.4081797Z             {
2026-06-18T12:03:29.4081950Z               "path": "crates/spt-msg/src/listener.rs",
2026-06-18T12:03:29.4082064Z               "line": 19
2026-06-18T12:03:29.4082179Z             },
2026-06-18T12:03:29.4082288Z             {
2026-06-18T12:03:29.4082442Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4082547Z               "line": 21
2026-06-18T12:03:29.4082660Z             },
2026-06-18T12:03:29.4082771Z             {
2026-06-18T12:03:29.4082918Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4083043Z               "line": 48
2026-06-18T12:03:29.4083152Z             },
2026-06-18T12:03:29.4083270Z             {
2026-06-18T12:03:29.4083419Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4083542Z               "line": 172
2026-06-18T12:03:29.4083663Z             }
2026-06-18T12:03:29.4083763Z           ]
2026-06-18T12:03:29.4083880Z         },
2026-06-18T12:03:29.4083980Z         "int": {
2026-06-18T12:03:29.4084113Z           "complete": true,
2026-06-18T12:03:29.4084230Z           "evidence": [
2026-06-18T12:03:29.4084345Z             {
2026-06-18T12:03:29.4084525Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T12:03:29.4084636Z               "line": 10
2026-06-18T12:03:29.4084755Z             },
2026-06-18T12:03:29.4084864Z             {
2026-06-18T12:03:29.4085046Z               "path": "crates/spt-msg/tests/killer_quickstart.rs",
2026-06-18T12:03:29.4085164Z               "line": 56
2026-06-18T12:03:29.4085290Z             }
2026-06-18T12:03:29.4085398Z           ]
2026-06-18T12:03:29.4085498Z         },
2026-06-18T12:03:29.4085614Z         "unit": {
2026-06-18T12:03:29.4085737Z           "complete": true,
2026-06-18T12:03:29.4085861Z           "evidence": [
2026-06-18T12:03:29.4085962Z             {
2026-06-18T12:03:29.4086114Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4086239Z               "line": 226
2026-06-18T12:03:29.4086361Z             },
2026-06-18T12:03:29.4086476Z             {
2026-06-18T12:03:29.4086621Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4086747Z               "line": 245
2026-06-18T12:03:29.4086852Z             },
2026-06-18T12:03:29.4086962Z             {
2026-06-18T12:03:29.4087100Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4087214Z               "line": 268
2026-06-18T12:03:29.4087320Z             }
2026-06-18T12:03:29.4087424Z           ]
2026-06-18T12:03:29.4087525Z         }
2026-06-18T12:03:29.4087639Z       }
2026-06-18T12:03:29.4087743Z     },
2026-06-18T12:03:29.4087854Z     {
2026-06-18T12:03:29.4087972Z       "id": "REQ-MSG-4",
2026-06-18T12:03:29.4088874Z       "title": "Listener stream stdout emits EVENT envelope lines (sister-format, ADR-0001): parse the __REPLY_TO__ frame, pass pre-formed typed envelopes through verbatim (no double-wrap), compose <EVENT type=\"msg\" from=…> otherwise, chunk oversized lines into EVENT-PART",
2026-06-18T12:03:29.4089101Z       "requiredStages": [
2026-06-18T12:03:29.4089220Z         "impl",
2026-06-18T12:03:29.4089337Z         "unit",
2026-06-18T12:03:29.4089442Z         "int"
2026-06-18T12:03:29.4089563Z       ],
2026-06-18T12:03:29.4089666Z       "stages": {
2026-06-18T12:03:29.4089781Z         "doc": {
2026-06-18T12:03:29.4089891Z           "complete": false,
2026-06-18T12:03:29.4090014Z           "evidence": []
2026-06-18T12:03:29.4090125Z         },
2026-06-18T12:03:29.4090234Z         "impl": {
2026-06-18T12:03:29.4090358Z           "complete": true,
2026-06-18T12:03:29.4090596Z           "evidence": [
2026-06-18T12:03:29.4090706Z             {
2026-06-18T12:03:29.4090854Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4090982Z               "line": 19
2026-06-18T12:03:29.4091093Z             },
2026-06-18T12:03:29.4091192Z             {
2026-06-18T12:03:29.4091336Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4091455Z               "line": 46
2026-06-18T12:03:29.4091670Z             },
2026-06-18T12:03:29.4091770Z             {
2026-06-18T12:03:29.4091925Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4092054Z               "line": 501
2026-06-18T12:03:29.4092167Z             },
2026-06-18T12:03:29.4092290Z             {
2026-06-18T12:03:29.4092429Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4092557Z               "line": 2981
2026-06-18T12:03:29.4092668Z             }
2026-06-18T12:03:29.4092787Z           ]
2026-06-18T12:03:29.4092910Z         },
2026-06-18T12:03:29.4093011Z         "int": {
2026-06-18T12:03:29.4093144Z           "complete": true,
2026-06-18T12:03:29.4093263Z           "evidence": [
2026-06-18T12:03:29.4093373Z             {
2026-06-18T12:03:29.4093530Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T12:03:29.4093650Z               "line": 98
2026-06-18T12:03:29.4093768Z             },
2026-06-18T12:03:29.4093874Z             {
2026-06-18T12:03:29.4094045Z               "path": "crates/spt/tests/quickstart_e2e.rs",
2026-06-18T12:03:29.4094164Z               "line": 128
2026-06-18T12:03:29.4094285Z             }
2026-06-18T12:03:29.4094388Z           ]
2026-06-18T12:03:29.4094497Z         },
2026-06-18T12:03:29.4094616Z         "unit": {
2026-06-18T12:03:29.4094729Z           "complete": true,
2026-06-18T12:03:29.4094852Z           "evidence": [
2026-06-18T12:03:29.4094963Z             {
2026-06-18T12:03:29.4095129Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4095259Z               "line": 68
2026-06-18T12:03:29.4095382Z             },
2026-06-18T12:03:29.4095486Z             {
2026-06-18T12:03:29.4095630Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4095753Z               "line": 79
2026-06-18T12:03:29.4095864Z             },
2026-06-18T12:03:29.4095982Z             {
2026-06-18T12:03:29.4096116Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4096241Z               "line": 90
2026-06-18T12:03:29.4096368Z             },
2026-06-18T12:03:29.4096484Z             {
2026-06-18T12:03:29.4096635Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4096755Z               "line": 151
2026-06-18T12:03:29.4096871Z             }
2026-06-18T12:03:29.4096979Z           ]
2026-06-18T12:03:29.4097095Z         }
2026-06-18T12:03:29.4097209Z       }
2026-06-18T12:03:29.4097317Z     },
2026-06-18T12:03:29.4097422Z     {
2026-06-18T12:03:29.4097537Z       "id": "REQ-MSG-5",
2026-06-18T12:03:29.4098346Z       "title": "user-msg envelope kind + daemon identity gate: a Gateway endpoint / the local user's CLI author user-msg (the user's authority); agent-family senders re-stamped to plain msg; identity-gated never payload-trusted (KH 7.3/7.5); wire-additive (N-1 receivers tolerate the new type)",
2026-06-18T12:03:29.4098485Z       "requiredStages": [
2026-06-18T12:03:29.4098589Z         "doc",
2026-06-18T12:03:29.4098705Z         "impl",
2026-06-18T12:03:29.4098805Z         "unit"
2026-06-18T12:03:29.4098918Z       ],
2026-06-18T12:03:29.4099101Z       "stages": {
2026-06-18T12:03:29.4099209Z         "doc": {
2026-06-18T12:03:29.4099339Z           "complete": true,
2026-06-18T12:03:29.4099453Z           "evidence": [
2026-06-18T12:03:29.4099571Z             {
2026-06-18T12:03:29.4099685Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4099808Z               "line": 231
2026-06-18T12:03:29.4099912Z             }
2026-06-18T12:03:29.4100017Z           ]
2026-06-18T12:03:29.4100132Z         },
2026-06-18T12:03:29.4100241Z         "impl": {
2026-06-18T12:03:29.4100470Z           "complete": true,
2026-06-18T12:03:29.4100588Z           "evidence": [
2026-06-18T12:03:29.4100704Z             {
2026-06-18T12:03:29.4100856Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.4100976Z               "line": 60
2026-06-18T12:03:29.4101095Z             },
2026-06-18T12:03:29.4101199Z             {
2026-06-18T12:03:29.4101348Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4101562Z               "line": 126
2026-06-18T12:03:29.4101672Z             },
2026-06-18T12:03:29.4101776Z             {
2026-06-18T12:03:29.4101925Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4102052Z               "line": 135
2026-06-18T12:03:29.4102172Z             },
2026-06-18T12:03:29.4102288Z             {
2026-06-18T12:03:29.4102466Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4102581Z               "line": 149
2026-06-18T12:03:29.4102684Z             },
2026-06-18T12:03:29.4102802Z             {
2026-06-18T12:03:29.4102956Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4103065Z               "line": 178
2026-06-18T12:03:29.4103180Z             },
2026-06-18T12:03:29.4103290Z             {
2026-06-18T12:03:29.4103427Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4103548Z               "line": 2673
2026-06-18T12:03:29.4103662Z             }
2026-06-18T12:03:29.4103785Z           ]
2026-06-18T12:03:29.4103886Z         },
2026-06-18T12:03:29.4104010Z         "int": {
2026-06-18T12:03:29.4104129Z           "complete": true,
2026-06-18T12:03:29.4104258Z           "evidence": [
2026-06-18T12:03:29.4104362Z             {
2026-06-18T12:03:29.4104516Z               "path": "crates/spt/tests/gateway_e2e.rs",
2026-06-18T12:03:29.4104624Z               "line": 19
2026-06-18T12:03:29.4104734Z             }
2026-06-18T12:03:29.4104850Z           ]
2026-06-18T12:03:29.4104958Z         },
2026-06-18T12:03:29.4105081Z         "unit": {
2026-06-18T12:03:29.4105209Z           "complete": true,
2026-06-18T12:03:29.4105336Z           "evidence": [
2026-06-18T12:03:29.4105441Z             {
2026-06-18T12:03:29.4105590Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.4105713Z               "line": 192
2026-06-18T12:03:29.4105824Z             },
2026-06-18T12:03:29.4105937Z             {
2026-06-18T12:03:29.4106095Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T12:03:29.4106228Z               "line": 154
2026-06-18T12:03:29.4106347Z             },
2026-06-18T12:03:29.4106458Z             {
2026-06-18T12:03:29.4106605Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4106715Z               "line": 122
2026-06-18T12:03:29.4106834Z             },
2026-06-18T12:03:29.4106938Z             {
2026-06-18T12:03:29.4107092Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4107215Z               "line": 452
2026-06-18T12:03:29.4107325Z             },
2026-06-18T12:03:29.4107454Z             {
2026-06-18T12:03:29.4107606Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4107726Z               "line": 501
2026-06-18T12:03:29.4107834Z             },
2026-06-18T12:03:29.4107943Z             {
2026-06-18T12:03:29.4108097Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4108200Z               "line": 517
2026-06-18T12:03:29.4108321Z             },
2026-06-18T12:03:29.4108435Z             {
2026-06-18T12:03:29.4108582Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4108698Z               "line": 536
2026-06-18T12:03:29.4108816Z             },
2026-06-18T12:03:29.4108921Z             {
2026-06-18T12:03:29.4109159Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4109275Z               "line": 7499
2026-06-18T12:03:29.4109379Z             }
2026-06-18T12:03:29.4109488Z           ]
2026-06-18T12:03:29.4109595Z         }
2026-06-18T12:03:29.4109699Z       }
2026-06-18T12:03:29.4109948Z     },
2026-06-18T12:03:29.4110055Z     {
2026-06-18T12:03:29.4110183Z       "id": "REQ-MSG-6",
2026-06-18T12:03:29.4111894Z       "title": "cross-node Gateway user-msg honored via advertised endpoint_type: a user-msg from a Gateway-typed origin survives the receive_wan funnel as user-msg (vs the fail-closed re-stamp), keyed on the QUIC-handshake-proven origin node (never wire `from`). Trust boundary = subnet membership (operator-ratified 2026-06-13); no defense against an in-subnet member forging the type. Instance.endpoint_type is an additive serde-default field extending REQ-INST-7's data model. Absent/unknown type → re-stamp (N-1 rollout grace)",
2026-06-18T12:03:29.4112122Z       "requiredStages": [
2026-06-18T12:03:29.4112228Z         "doc",
2026-06-18T12:03:29.4112337Z         "impl",
2026-06-18T12:03:29.4112442Z         "unit"
2026-06-18T12:03:29.4112552Z       ],
2026-06-18T12:03:29.4112665Z       "stages": {
2026-06-18T12:03:29.4112781Z         "doc": {
2026-06-18T12:03:29.4112913Z           "complete": true,
2026-06-18T12:03:29.4113027Z           "evidence": [
2026-06-18T12:03:29.4113137Z             {
2026-06-18T12:03:29.4113268Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4113377Z               "line": 234
2026-06-18T12:03:29.4113488Z             }
2026-06-18T12:03:29.4113592Z           ]
2026-06-18T12:03:29.4113696Z         },
2026-06-18T12:03:29.4113817Z         "impl": {
2026-06-18T12:03:29.4113921Z           "complete": true,
2026-06-18T12:03:29.4114064Z           "evidence": [
2026-06-18T12:03:29.4114169Z             {
2026-06-18T12:03:29.4114335Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4114456Z               "line": 177
2026-06-18T12:03:29.4114570Z             },
2026-06-18T12:03:29.4114684Z             {
2026-06-18T12:03:29.4114832Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4114956Z               "line": 428
2026-06-18T12:03:29.4115057Z             },
2026-06-18T12:03:29.4115175Z             {
2026-06-18T12:03:29.4115338Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4115452Z               "line": 451
2026-06-18T12:03:29.4115556Z             },
2026-06-18T12:03:29.4115655Z             {
2026-06-18T12:03:29.4115797Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.4115905Z               "line": 89
2026-06-18T12:03:29.4116021Z             },
2026-06-18T12:03:29.4116131Z             {
2026-06-18T12:03:29.4116297Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4116417Z               "line": 155
2026-06-18T12:03:29.4116531Z             }
2026-06-18T12:03:29.4116646Z           ]
2026-06-18T12:03:29.4116751Z         },
2026-06-18T12:03:29.4116873Z         "int": {
2026-06-18T12:03:29.4116994Z           "complete": false,
2026-06-18T12:03:29.4117112Z           "evidence": []
2026-06-18T12:03:29.4117217Z         },
2026-06-18T12:03:29.4117328Z         "unit": {
2026-06-18T12:03:29.4117442Z           "complete": true,
2026-06-18T12:03:29.4117561Z           "evidence": [
2026-06-18T12:03:29.4117666Z             {
2026-06-18T12:03:29.4121380Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4121529Z               "line": 1746
2026-06-18T12:03:29.4121647Z             },
2026-06-18T12:03:29.4121753Z             {
2026-06-18T12:03:29.4121915Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.4122029Z               "line": 219
2026-06-18T12:03:29.4122149Z             }
2026-06-18T12:03:29.4122263Z           ]
2026-06-18T12:03:29.4122372Z         }
2026-06-18T12:03:29.4122487Z       }
2026-06-18T12:03:29.4122591Z     },
2026-06-18T12:03:29.4122707Z     {
2026-06-18T12:03:29.4122825Z       "id": "REQ-MSG-ENVELOPE",
2026-06-18T12:03:29.4126700Z       "title": "The <EVENT type=\"msg\" from=…>body</EVENT> envelope (spt-proto::event, the ADR-0001 grammar) is the SOLE canonical arriving-message format at EVERY harness arriving-message surface on an AGENT perch — api listen AND api poll/worker-poll, byte-identical (reverses REQ-MSG-4's 'hook drains keep the raw frame by contract'). SCOPE CARVE-OUT: the shell-command relay (api poll <shell-id> --link, cmd_poll_shell) is a distinct internal transport carrying RAW MAC'd stamped frames the shell child consumes verbatim — NOT an arriving-message surface, deliberately EXEMPT from <EVENT> composition (notify_shell_e2e guards this boundary). __REPLY_TO__ — mis-elevated during the clean-room port to a fake ADR-0001 'stable wire format' (spt-msg/wire.rs, lib.rs) — is REMOVED entirely (spool format_row, the spt-msg TCP frame, emit parse_frame); (from, body) carried structurally, <EVENT> composed once at the delivery boundary. No legacy sister-interop (spt-core never required it). Reply-correlation rebinds onto the structural from / <EVENT from=…> attribute (ADR-0009 access-gate + ADR-0012 Psyche/spt-live reply-target). Self-delimiting by construction → finding F-002 (non-self-delimiting multi-message poll) dissolves. ADR-0020.",
2026-06-18T12:03:29.4127143Z       "requiredStages": [
2026-06-18T12:03:29.4127258Z         "doc",
2026-06-18T12:03:29.4127363Z         "impl",
2026-06-18T12:03:29.4127477Z         "unit",
2026-06-18T12:03:29.4127578Z         "int"
2026-06-18T12:03:29.4127682Z       ],
2026-06-18T12:03:29.4127792Z       "stages": {
2026-06-18T12:03:29.4127888Z         "doc": {
2026-06-18T12:03:29.4128011Z           "complete": true,
2026-06-18T12:03:29.4128126Z           "evidence": [
2026-06-18T12:03:29.4128259Z             {
2026-06-18T12:03:29.4128527Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-18T12:03:29.4128635Z               "line": 47
2026-06-18T12:03:29.4128746Z             }
2026-06-18T12:03:29.4128851Z           ]
2026-06-18T12:03:29.4129021Z         },
2026-06-18T12:03:29.4129136Z         "impl": {
2026-06-18T12:03:29.4129241Z           "complete": true,
2026-06-18T12:03:29.4129359Z           "evidence": [
2026-06-18T12:03:29.4129474Z             {
2026-06-18T12:03:29.4129622Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4129727Z               "line": 20
2026-06-18T12:03:29.4129837Z             },
2026-06-18T12:03:29.4129946Z             {
2026-06-18T12:03:29.4130070Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4130185Z               "line": 33
2026-06-18T12:03:29.4130284Z             },
2026-06-18T12:03:29.4130395Z             {
2026-06-18T12:03:29.4130523Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4130632Z               "line": 47
2026-06-18T12:03:29.4130739Z             },
2026-06-18T12:03:29.4130838Z             {
2026-06-18T12:03:29.4130966Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4131077Z               "line": 58
2026-06-18T12:03:29.4131181Z             },
2026-06-18T12:03:29.4131285Z             {
2026-06-18T12:03:29.4131418Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4131535Z               "line": 14
2026-06-18T12:03:29.4131644Z             },
2026-06-18T12:03:29.4131751Z             {
2026-06-18T12:03:29.4131883Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4131998Z               "line": 27
2026-06-18T12:03:29.4132094Z             },
2026-06-18T12:03:29.4132198Z             {
2026-06-18T12:03:29.4132328Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4132441Z               "line": 40
2026-06-18T12:03:29.4132550Z             },
2026-06-18T12:03:29.4132652Z             {
2026-06-18T12:03:29.4132799Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.4132918Z               "line": 92
2026-06-18T12:03:29.4133019Z             },
2026-06-18T12:03:29.4133133Z             {
2026-06-18T12:03:29.4133272Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4133386Z               "line": 143
2026-06-18T12:03:29.4133485Z             },
2026-06-18T12:03:29.4133601Z             {
2026-06-18T12:03:29.4133738Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4133954Z               "line": 216
2026-06-18T12:03:29.4134067Z             },
2026-06-18T12:03:29.4134166Z             {
2026-06-18T12:03:29.4134309Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4134416Z               "line": 502
2026-06-18T12:03:29.4134536Z             },
2026-06-18T12:03:29.4134641Z             {
2026-06-18T12:03:29.4134779Z               "path": "crates/spt/src/api/worker.rs",
2026-06-18T12:03:29.4134994Z               "line": 78
2026-06-18T12:03:29.4135103Z             },
2026-06-18T12:03:29.4135214Z             {
2026-06-18T12:03:29.4135347Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4135466Z               "line": 2982
2026-06-18T12:03:29.4135572Z             }
2026-06-18T12:03:29.4135676Z           ]
2026-06-18T12:03:29.4135794Z         },
2026-06-18T12:03:29.4135901Z         "int": {
2026-06-18T12:03:29.4136024Z           "complete": true,
2026-06-18T12:03:29.4136134Z           "evidence": [
2026-06-18T12:03:29.4136258Z             {
2026-06-18T12:03:29.4136420Z               "path": "crates/spt/tests/poll_envelope_e2e.rs",
2026-06-18T12:03:29.4136535Z               "line": 15
2026-06-18T12:03:29.4136638Z             }
2026-06-18T12:03:29.4136737Z           ]
2026-06-18T12:03:29.4136852Z         },
2026-06-18T12:03:29.4136959Z         "unit": {
2026-06-18T12:03:29.4137078Z           "complete": true,
2026-06-18T12:03:29.4137194Z           "evidence": [
2026-06-18T12:03:29.4137308Z             {
2026-06-18T12:03:29.4137446Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4137556Z               "line": 102
2026-06-18T12:03:29.4137670Z             },
2026-06-18T12:03:29.4137771Z             {
2026-06-18T12:03:29.4137904Z               "path": "crates/spt-msg/src/emit.rs",
2026-06-18T12:03:29.4138022Z               "line": 137
2026-06-18T12:03:29.4138119Z             },
2026-06-18T12:03:29.4138228Z             {
2026-06-18T12:03:29.4138361Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4138481Z               "line": 98
2026-06-18T12:03:29.4138581Z             },
2026-06-18T12:03:29.4138696Z             {
2026-06-18T12:03:29.4138819Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4138919Z               "line": 106
2026-06-18T12:03:29.4139115Z             },
2026-06-18T12:03:29.4139210Z             {
2026-06-18T12:03:29.4139340Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4139468Z               "line": 113
2026-06-18T12:03:29.4139576Z             },
2026-06-18T12:03:29.4139681Z             {
2026-06-18T12:03:29.4139806Z               "path": "crates/spt-msg/src/wire.rs",
2026-06-18T12:03:29.4139924Z               "line": 122
2026-06-18T12:03:29.4140030Z             }
2026-06-18T12:03:29.4140144Z           ]
2026-06-18T12:03:29.4140253Z         }
2026-06-18T12:03:29.4140350Z       }
2026-06-18T12:03:29.4140459Z     },
2026-06-18T12:03:29.4140563Z     {
2026-06-18T12:03:29.4140674Z       "id": "REQ-NET-1",
2026-06-18T12:03:29.4140887Z       "title": "WAN messaging first-class, behind default-on net feature flag",
2026-06-18T12:03:29.4141012Z       "requiredStages": [
2026-06-18T12:03:29.4141121Z         "impl",
2026-06-18T12:03:29.4141241Z         "unit",
2026-06-18T12:03:29.4141351Z         "int"
2026-06-18T12:03:29.4141459Z       ],
2026-06-18T12:03:29.4141575Z       "stages": {
2026-06-18T12:03:29.4141675Z         "doc": {
2026-06-18T12:03:29.4141797Z           "complete": false,
2026-06-18T12:03:29.4141902Z           "evidence": []
2026-06-18T12:03:29.4142002Z         },
2026-06-18T12:03:29.4142119Z         "impl": {
2026-06-18T12:03:29.4142229Z           "complete": true,
2026-06-18T12:03:29.4142344Z           "evidence": [
2026-06-18T12:03:29.4142439Z             {
2026-06-18T12:03:29.4142596Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4142701Z               "line": 54
2026-06-18T12:03:29.4142810Z             },
2026-06-18T12:03:29.4142926Z             {
2026-06-18T12:03:29.4143173Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4143278Z               "line": 594
2026-06-18T12:03:29.4143383Z             },
2026-06-18T12:03:29.4143497Z             {
2026-06-18T12:03:29.4143626Z               "path": "crates/spt-daemon/src/wan.rs",
2026-06-18T12:03:29.4143745Z               "line": 130
2026-06-18T12:03:29.4143851Z             },
2026-06-18T12:03:29.4143960Z             {
2026-06-18T12:03:29.4144218Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4144331Z               "line": 97
2026-06-18T12:03:29.4144442Z             },
2026-06-18T12:03:29.4144548Z             {
2026-06-18T12:03:29.4144688Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4144808Z               "line": 159
2026-06-18T12:03:29.4144916Z             },
2026-06-18T12:03:29.4145024Z             {
2026-06-18T12:03:29.4145163Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4145282Z               "line": 175
2026-06-18T12:03:29.4145396Z             },
2026-06-18T12:03:29.4145502Z             {
2026-06-18T12:03:29.4145639Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4145750Z               "line": 190
2026-06-18T12:03:29.4145864Z             },
2026-06-18T12:03:29.4145973Z             {
2026-06-18T12:03:29.4146117Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4146246Z               "line": 271
2026-06-18T12:03:29.4146350Z             },
2026-06-18T12:03:29.4146461Z             {
2026-06-18T12:03:29.4146603Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4146719Z               "line": 306
2026-06-18T12:03:29.4146827Z             },
2026-06-18T12:03:29.4146941Z             {
2026-06-18T12:03:29.4147081Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4147184Z               "line": 312
2026-06-18T12:03:29.4147298Z             },
2026-06-18T12:03:29.4147408Z             {
2026-06-18T12:03:29.4147553Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4147658Z               "line": 318
2026-06-18T12:03:29.4147768Z             },
2026-06-18T12:03:29.4147886Z             {
2026-06-18T12:03:29.4148031Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4148145Z               "line": 334
2026-06-18T12:03:29.4148249Z             },
2026-06-18T12:03:29.4148365Z             {
2026-06-18T12:03:29.4148502Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4148607Z               "line": 354
2026-06-18T12:03:29.4148717Z             },
2026-06-18T12:03:29.4148817Z             {
2026-06-18T12:03:29.4149037Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T12:03:29.4149141Z               "line": 35
2026-06-18T12:03:29.4149251Z             },
2026-06-18T12:03:29.4149356Z             {
2026-06-18T12:03:29.4149498Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T12:03:29.4149614Z               "line": 85
2026-06-18T12:03:29.4149718Z             },
2026-06-18T12:03:29.4149818Z             {
2026-06-18T12:03:29.4149958Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.4150074Z               "line": 138
2026-06-18T12:03:29.4150193Z             },
2026-06-18T12:03:29.4150290Z             {
2026-06-18T12:03:29.4150427Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4150542Z               "line": 2824
2026-06-18T12:03:29.4150647Z             },
2026-06-18T12:03:29.4150751Z             {
2026-06-18T12:03:29.4150886Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4150995Z               "line": 17
2026-06-18T12:03:29.4151099Z             }
2026-06-18T12:03:29.4151210Z           ]
2026-06-18T12:03:29.4151305Z         },
2026-06-18T12:03:29.4151419Z         "int": {
2026-06-18T12:03:29.4151530Z           "complete": true,
2026-06-18T12:03:29.4151653Z           "evidence": [
2026-06-18T12:03:29.4151878Z             {
2026-06-18T12:03:29.4152029Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4152154Z               "line": 341
2026-06-18T12:03:29.4152264Z             },
2026-06-18T12:03:29.4152372Z             {
2026-06-18T12:03:29.4152515Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4152632Z               "line": 674
2026-06-18T12:03:29.4152746Z             },
2026-06-18T12:03:29.4152951Z             {
2026-06-18T12:03:29.4153094Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4153205Z               "line": 972
2026-06-18T12:03:29.4153323Z             }
2026-06-18T12:03:29.4153428Z           ]
2026-06-18T12:03:29.4153529Z         },
2026-06-18T12:03:29.4153642Z         "unit": {
2026-06-18T12:03:29.4153753Z           "complete": true,
2026-06-18T12:03:29.4153872Z           "evidence": [
2026-06-18T12:03:29.4153976Z             {
2026-06-18T12:03:29.4154129Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4154239Z               "line": 651
2026-06-18T12:03:29.4154343Z             },
2026-06-18T12:03:29.4154449Z             {
2026-06-18T12:03:29.4154597Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4154712Z               "line": 686
2026-06-18T12:03:29.4154830Z             },
2026-06-18T12:03:29.4154935Z             {
2026-06-18T12:03:29.4155084Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4155202Z               "line": 938
2026-06-18T12:03:29.4155315Z             },
2026-06-18T12:03:29.4155420Z             {
2026-06-18T12:03:29.4155570Z               "path": "crates/spt-daemon/tests/wanmsg.rs",
2026-06-18T12:03:29.4155685Z               "line": 201
2026-06-18T12:03:29.4155790Z             },
2026-06-18T12:03:29.4155885Z             {
2026-06-18T12:03:29.4156034Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4156148Z               "line": 442
2026-06-18T12:03:29.4156261Z             },
2026-06-18T12:03:29.4156372Z             {
2026-06-18T12:03:29.4156514Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4156624Z               "line": 456
2026-06-18T12:03:29.4156725Z             },
2026-06-18T12:03:29.4156834Z             {
2026-06-18T12:03:29.4156992Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4157101Z               "line": 475
2026-06-18T12:03:29.4157220Z             },
2026-06-18T12:03:29.4157326Z             {
2026-06-18T12:03:29.4157468Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T12:03:29.4157574Z               "line": 120
2026-06-18T12:03:29.4157679Z             },
2026-06-18T12:03:29.4157782Z             {
2026-06-18T12:03:29.4157925Z               "path": "crates/spt-net/src/net/wanmsg.rs",
2026-06-18T12:03:29.4158038Z               "line": 163
2026-06-18T12:03:29.4158146Z             },
2026-06-18T12:03:29.4158252Z             {
2026-06-18T12:03:29.4158395Z               "path": "crates/spt-store/src/spool.rs",
2026-06-18T12:03:29.4158513Z               "line": 530
2026-06-18T12:03:29.4158620Z             },
2026-06-18T12:03:29.4158724Z             {
2026-06-18T12:03:29.4158862Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4159044Z               "line": 616
2026-06-18T12:03:29.4159153Z             },
2026-06-18T12:03:29.4159263Z             {
2026-06-18T12:03:29.4159391Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4159516Z               "line": 1006
2026-06-18T12:03:29.4159611Z             }
2026-06-18T12:03:29.4159715Z           ]
2026-06-18T12:03:29.4159821Z         }
2026-06-18T12:03:29.4159931Z       }
2026-06-18T12:03:29.4160040Z     },
2026-06-18T12:03:29.4160151Z     {
2026-06-18T12:03:29.4160264Z       "id": "REQ-NET-2",
2026-06-18T12:03:29.4160470Z       "title": "n0 relay default + self-host knob + plain-language disclosure",
2026-06-18T12:03:29.4160598Z       "requiredStages": [
2026-06-18T12:03:29.4160802Z         "impl"
2026-06-18T12:03:29.4160908Z       ],
2026-06-18T12:03:29.4161025Z       "stages": {
2026-06-18T12:03:29.4161131Z         "doc": {
2026-06-18T12:03:29.4161251Z           "complete": false,
2026-06-18T12:03:29.4161354Z           "evidence": []
2026-06-18T12:03:29.4161465Z         },
2026-06-18T12:03:29.4161575Z         "impl": {
2026-06-18T12:03:29.4161702Z           "complete": true,
2026-06-18T12:03:29.4161809Z           "evidence": [
2026-06-18T12:03:29.4162013Z             {
2026-06-18T12:03:29.4162166Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.4162270Z               "line": 57
2026-06-18T12:03:29.4162381Z             },
2026-06-18T12:03:29.4162490Z             {
2026-06-18T12:03:29.4162642Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4162753Z               "line": 71
2026-06-18T12:03:29.4162856Z             },
2026-06-18T12:03:29.4162970Z             {
2026-06-18T12:03:29.4163117Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4163235Z               "line": 81
2026-06-18T12:03:29.4163340Z             },
2026-06-18T12:03:29.4163445Z             {
2026-06-18T12:03:29.4163597Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4163707Z               "line": 159
2026-06-18T12:03:29.4163817Z             },
2026-06-18T12:03:29.4163926Z             {
2026-06-18T12:03:29.4164079Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4164188Z               "line": 175
2026-06-18T12:03:29.4164303Z             },
2026-06-18T12:03:29.4164413Z             {
2026-06-18T12:03:29.4164560Z               "path": "crates/spt-net/src/net/endpoint.rs",
2026-06-18T12:03:29.4164681Z               "line": 190
2026-06-18T12:03:29.4164790Z             }
2026-06-18T12:03:29.4164903Z           ]
2026-06-18T12:03:29.4165005Z         },
2026-06-18T12:03:29.4165118Z         "int": {
2026-06-18T12:03:29.4165238Z           "complete": false,
2026-06-18T12:03:29.4165357Z           "evidence": []
2026-06-18T12:03:29.4165471Z         },
2026-06-18T12:03:29.4165577Z         "unit": {
2026-06-18T12:03:29.4165705Z           "complete": true,
2026-06-18T12:03:29.4165818Z           "evidence": [
2026-06-18T12:03:29.4165933Z             {
2026-06-18T12:03:29.4166083Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.4166197Z               "line": 402
2026-06-18T12:03:29.4166313Z             }
2026-06-18T12:03:29.4166426Z           ]
2026-06-18T12:03:29.4166531Z         }
2026-06-18T12:03:29.4166642Z       }
2026-06-18T12:03:29.4166741Z     },
2026-06-18T12:03:29.4166855Z     {
2026-06-18T12:03:29.4166956Z       "id": "REQ-NET-3",
2026-06-18T12:03:29.4167175Z       "title": "Cross-node Psyche sync over P2P replaces gh-repo-sync",
2026-06-18T12:03:29.4167290Z       "requiredStages": [
2026-06-18T12:03:29.4167409Z         "impl",
2026-06-18T12:03:29.4167504Z         "unit"
2026-06-18T12:03:29.4167619Z       ],
2026-06-18T12:03:29.4167738Z       "stages": {
2026-06-18T12:03:29.4167849Z         "doc": {
2026-06-18T12:03:29.4167966Z           "complete": false,
2026-06-18T12:03:29.4168076Z           "evidence": []
2026-06-18T12:03:29.4168187Z         },
2026-06-18T12:03:29.4168286Z         "impl": {
2026-06-18T12:03:29.4168408Z           "complete": true,
2026-06-18T12:03:29.4168514Z           "evidence": [
2026-06-18T12:03:29.4168626Z             {
2026-06-18T12:03:29.4168778Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.4168889Z               "line": 39
2026-06-18T12:03:29.4169079Z             },
2026-06-18T12:03:29.4169170Z             {
2026-06-18T12:03:29.4169312Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.4169427Z               "line": 182
2026-06-18T12:03:29.4169537Z             },
2026-06-18T12:03:29.4169651Z             {
2026-06-18T12:03:29.4169790Z               "path": "crates/spt-daemon/src/sync.rs",
2026-06-18T12:03:29.4169908Z               "line": 333
2026-06-18T12:03:29.4170013Z             },
2026-06-18T12:03:29.4170228Z             {
2026-06-18T12:03:29.4170371Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T12:03:29.4170481Z               "line": 36
2026-06-18T12:03:29.4170600Z             },
2026-06-18T12:03:29.4170696Z             {
2026-06-18T12:03:29.4170852Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4170967Z               "line": 158
2026-06-18T12:03:29.4171083Z             },
2026-06-18T12:03:29.4171300Z             {
2026-06-18T12:03:29.4171453Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4171566Z               "line": 238
2026-06-18T12:03:29.4171672Z             },
2026-06-18T12:03:29.4171781Z             {
2026-06-18T12:03:29.4171934Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4172049Z               "line": 259
2026-06-18T12:03:29.4172163Z             },
2026-06-18T12:03:29.4172263Z             {
2026-06-18T12:03:29.4172425Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4172544Z               "line": 317
2026-06-18T12:03:29.4172664Z             },
2026-06-18T12:03:29.4172773Z             {
2026-06-18T12:03:29.4172931Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4173055Z               "line": 336
2026-06-18T12:03:29.4173169Z             },
2026-06-18T12:03:29.4173289Z             {
2026-06-18T12:03:29.4173450Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4173592Z               "line": 374
2026-06-18T12:03:29.4173710Z             },
2026-06-18T12:03:29.4173824Z             {
2026-06-18T12:03:29.4173967Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4174081Z               "line": 419
2026-06-18T12:03:29.4174195Z             },
2026-06-18T12:03:29.4174296Z             {
2026-06-18T12:03:29.4174457Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4174573Z               "line": 432
2026-06-18T12:03:29.4174687Z             },
2026-06-18T12:03:29.4174806Z             {
2026-06-18T12:03:29.4174959Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.4175073Z               "line": 29
2026-06-18T12:03:29.4175183Z             },
2026-06-18T12:03:29.4175283Z             {
2026-06-18T12:03:29.4175440Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.4175556Z               "line": 72
2026-06-18T12:03:29.4175678Z             },
2026-06-18T12:03:29.4175783Z             {
2026-06-18T12:03:29.4175936Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.4176055Z               "line": 123
2026-06-18T12:03:29.4176166Z             }
2026-06-18T12:03:29.4176279Z           ]
2026-06-18T12:03:29.4176388Z         },
2026-06-18T12:03:29.4176502Z         "int": {
2026-06-18T12:03:29.4176619Z           "complete": false,
2026-06-18T12:03:29.4176738Z           "evidence": []
2026-06-18T12:03:29.4176844Z         },
2026-06-18T12:03:29.4176962Z         "unit": {
2026-06-18T12:03:29.4177086Z           "complete": true,
2026-06-18T12:03:29.4177197Z           "evidence": [
2026-06-18T12:03:29.4177310Z             {
2026-06-18T12:03:29.4177445Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T12:03:29.4177569Z               "line": 223
2026-06-18T12:03:29.4177673Z             },
2026-06-18T12:03:29.4177784Z             {
2026-06-18T12:03:29.4177921Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T12:03:29.4178035Z               "line": 351
2026-06-18T12:03:29.4178141Z             },
2026-06-18T12:03:29.4178250Z             {
2026-06-18T12:03:29.4178384Z               "path": "crates/spt-daemon/tests/sync.rs",
2026-06-18T12:03:29.4178498Z               "line": 504
2026-06-18T12:03:29.4178613Z             },
2026-06-18T12:03:29.4178723Z             {
2026-06-18T12:03:29.4178869Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T12:03:29.4179065Z               "line": 93
2026-06-18T12:03:29.4179262Z             },
2026-06-18T12:03:29.4179362Z             {
2026-06-18T12:03:29.4179534Z               "path": "crates/spt-net/src/net/sync.rs",
2026-06-18T12:03:29.4179653Z               "line": 142
2026-06-18T12:03:29.4179764Z             },
2026-06-18T12:03:29.4179872Z             {
2026-06-18T12:03:29.4180026Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.4180145Z               "line": 315
2026-06-18T12:03:29.4180253Z             },
2026-06-18T12:03:29.4180488Z             {
2026-06-18T12:03:29.4180651Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.4180769Z               "line": 355
2026-06-18T12:03:29.4180874Z             },
2026-06-18T12:03:29.4180989Z             {
2026-06-18T12:03:29.4181131Z               "path": "crates/spt-store/src/syncmerge.rs",
2026-06-18T12:03:29.4181242Z               "line": 494
2026-06-18T12:03:29.4181352Z             }
2026-06-18T12:03:29.4181450Z           ]
2026-06-18T12:03:29.4181566Z         }
2026-06-18T12:03:29.4181681Z       }
2026-06-18T12:03:29.4181784Z     },
2026-06-18T12:03:29.4181888Z     {
2026-06-18T12:03:29.4182023Z       "id": "REQ-NODE-IDENTITY",
2026-06-18T12:03:29.4182295Z       "title": "Ed25519 identity primitive: keypair, detached sign/verify, stable pubkey<->hex",
2026-06-18T12:03:29.4182423Z       "requiredStages": [
2026-06-18T12:03:29.4182532Z         "impl",
2026-06-18T12:03:29.4182643Z         "unit"
2026-06-18T12:03:29.4182747Z       ],
2026-06-18T12:03:29.4182861Z       "stages": {
2026-06-18T12:03:29.4182976Z         "doc": {
2026-06-18T12:03:29.4183095Z           "complete": false,
2026-06-18T12:03:29.4183215Z           "evidence": []
2026-06-18T12:03:29.4183333Z         },
2026-06-18T12:03:29.4183447Z         "impl": {
2026-06-18T12:03:29.4183563Z           "complete": true,
2026-06-18T12:03:29.4183667Z           "evidence": [
2026-06-18T12:03:29.4183772Z             {
2026-06-18T12:03:29.4183916Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4184033Z               "line": 60
2026-06-18T12:03:29.4184153Z             },
2026-06-18T12:03:29.4184252Z             {
2026-06-18T12:03:29.4184403Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4184508Z               "line": 68
2026-06-18T12:03:29.4184618Z             },
2026-06-18T12:03:29.4184717Z             {
2026-06-18T12:03:29.4184866Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4184980Z               "line": 86
2026-06-18T12:03:29.4185084Z             },
2026-06-18T12:03:29.4185190Z             {
2026-06-18T12:03:29.4185327Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4185443Z               "line": 120
2026-06-18T12:03:29.4185552Z             },
2026-06-18T12:03:29.4185661Z             {
2026-06-18T12:03:29.4185810Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4185915Z               "line": 127
2026-06-18T12:03:29.4186033Z             },
2026-06-18T12:03:29.4186145Z             {
2026-06-18T12:03:29.4186291Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4186411Z               "line": 143
2026-06-18T12:03:29.4186510Z             },
2026-06-18T12:03:29.4186625Z             {
2026-06-18T12:03:29.4186765Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T12:03:29.4186877Z               "line": 16
2026-06-18T12:03:29.4186995Z             }
2026-06-18T12:03:29.4187106Z           ]
2026-06-18T12:03:29.4187227Z         },
2026-06-18T12:03:29.4187332Z         "int": {
2026-06-18T12:03:29.4187452Z           "complete": false,
2026-06-18T12:03:29.4187560Z           "evidence": []
2026-06-18T12:03:29.4187671Z         },
2026-06-18T12:03:29.4187771Z         "unit": {
2026-06-18T12:03:29.4187894Z           "complete": true,
2026-06-18T12:03:29.4188005Z           "evidence": [
2026-06-18T12:03:29.4188109Z             {
2026-06-18T12:03:29.4188252Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4188363Z               "line": 199
2026-06-18T12:03:29.4188800Z             },
2026-06-18T12:03:29.4188910Z             {
2026-06-18T12:03:29.4189139Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4189245Z               "line": 218
2026-06-18T12:03:29.4189354Z             },
2026-06-18T12:03:29.4189467Z             {
2026-06-18T12:03:29.4189605Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4189718Z               "line": 234
2026-06-18T12:03:29.4189927Z             },
2026-06-18T12:03:29.4190043Z             {
2026-06-18T12:03:29.4190179Z               "path": "crates/spt-proto/src/identity.rs",
2026-06-18T12:03:29.4190281Z               "line": 256
2026-06-18T12:03:29.4190386Z             },
2026-06-18T12:03:29.4190485Z             {
2026-06-18T12:03:29.4190628Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T12:03:29.4190743Z               "line": 124
2026-06-18T12:03:29.4190848Z             },
2026-06-18T12:03:29.4190953Z             {
2026-06-18T12:03:29.4191090Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T12:03:29.4191211Z               "line": 140
2026-06-18T12:03:29.4191315Z             },
2026-06-18T12:03:29.4191420Z             {
2026-06-18T12:03:29.4191559Z               "path": "crates/spt-store/src/nodeid.rs",
2026-06-18T12:03:29.4191677Z               "line": 155
2026-06-18T12:03:29.4191787Z             }
2026-06-18T12:03:29.4191893Z           ]
2026-06-18T12:03:29.4192011Z         }
2026-06-18T12:03:29.4192107Z       }
2026-06-18T12:03:29.4192222Z     },
2026-06-18T12:03:29.4192325Z     {
2026-06-18T12:03:29.4192444Z       "id": "REQ-NOTIF-1",
2026-06-18T12:03:29.4192845Z       "title": "Notification primitive: per-subnet replicated spool, seen/dismissed, resurface-at-boundary, subsumes update+consent prompts",
2026-06-18T12:03:29.4192964Z       "requiredStages": [
2026-06-18T12:03:29.4193078Z         "impl",
2026-06-18T12:03:29.4193184Z         "unit",
2026-06-18T12:03:29.4193298Z         "int"
2026-06-18T12:03:29.4193412Z       ],
2026-06-18T12:03:29.4193522Z       "stages": {
2026-06-18T12:03:29.4193636Z         "doc": {
2026-06-18T12:03:29.4193751Z           "complete": false,
2026-06-18T12:03:29.4193870Z           "evidence": []
2026-06-18T12:03:29.4193979Z         },
2026-06-18T12:03:29.4194095Z         "impl": {
2026-06-18T12:03:29.4194213Z           "complete": true,
2026-06-18T12:03:29.4194327Z           "evidence": [
2026-06-18T12:03:29.4194443Z             {
2026-06-18T12:03:29.4194598Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4194713Z               "line": 514
2026-06-18T12:03:29.4194817Z             },
2026-06-18T12:03:29.4194929Z             {
2026-06-18T12:03:29.4195073Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4195174Z               "line": 30
2026-06-18T12:03:29.4195277Z             },
2026-06-18T12:03:29.4195387Z             {
2026-06-18T12:03:29.4195531Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4195649Z               "line": 69
2026-06-18T12:03:29.4195765Z             },
2026-06-18T12:03:29.4195874Z             {
2026-06-18T12:03:29.4196017Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4196136Z               "line": 93
2026-06-18T12:03:29.4196240Z             },
2026-06-18T12:03:29.4196385Z             {
2026-06-18T12:03:29.4196536Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4196652Z               "line": 107
2026-06-18T12:03:29.4196765Z             },
2026-06-18T12:03:29.4196875Z             {
2026-06-18T12:03:29.4197019Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4197137Z               "line": 142
2026-06-18T12:03:29.4197248Z             },
2026-06-18T12:03:29.4197353Z             {
2026-06-18T12:03:29.4197499Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4197613Z               "line": 187
2026-06-18T12:03:29.4197717Z             },
2026-06-18T12:03:29.4197930Z             {
2026-06-18T12:03:29.4198069Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4198187Z               "line": 258
2026-06-18T12:03:29.4198294Z             },
2026-06-18T12:03:29.4198412Z             {
2026-06-18T12:03:29.4198551Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4198660Z               "line": 372
2026-06-18T12:03:29.4198759Z             },
2026-06-18T12:03:29.4198865Z             {
2026-06-18T12:03:29.4199151Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4199257Z               "line": 479
2026-06-18T12:03:29.4199375Z             },
2026-06-18T12:03:29.4199485Z             {
2026-06-18T12:03:29.4199632Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4199752Z               "line": 24
2026-06-18T12:03:29.4199858Z             },
2026-06-18T12:03:29.4199971Z             {
2026-06-18T12:03:29.4200117Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4200241Z               "line": 34
2026-06-18T12:03:29.4200349Z             },
2026-06-18T12:03:29.4200464Z             {
2026-06-18T12:03:29.4200607Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4200716Z               "line": 60
2026-06-18T12:03:29.4200846Z             },
2026-06-18T12:03:29.4200941Z             {
2026-06-18T12:03:29.4201073Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4201189Z               "line": 82
2026-06-18T12:03:29.4201279Z             },
2026-06-18T12:03:29.4201374Z             {
2026-06-18T12:03:29.4201499Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4201603Z               "line": 94
2026-06-18T12:03:29.4201698Z             },
2026-06-18T12:03:29.4201781Z             {
2026-06-18T12:03:29.4201909Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.4201994Z               "line": 96
2026-06-18T12:03:29.4202091Z             },
2026-06-18T12:03:29.4202180Z             {
2026-06-18T12:03:29.4202328Z               "path": "crates/spt-daemon/src/pump/notif.rs",
2026-06-18T12:03:29.4202425Z               "line": 44
2026-06-18T12:03:29.4202514Z             },
2026-06-18T12:03:29.4202605Z             {
2026-06-18T12:03:29.4202725Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T12:03:29.4202829Z               "line": 20
2026-06-18T12:03:29.4202919Z             },
2026-06-18T12:03:29.4203009Z             {
2026-06-18T12:03:29.4203139Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T12:03:29.4203228Z               "line": 30
2026-06-18T12:03:29.4203328Z             },
2026-06-18T12:03:29.4203415Z             {
2026-06-18T12:03:29.4203538Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T12:03:29.4203633Z               "line": 50
2026-06-18T12:03:29.4203739Z             },
2026-06-18T12:03:29.4203820Z             {
2026-06-18T12:03:29.4203943Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4204049Z               "line": 28
2026-06-18T12:03:29.4204134Z             },
2026-06-18T12:03:29.4207302Z             {
2026-06-18T12:03:29.4207479Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4207589Z               "line": 126
2026-06-18T12:03:29.4207682Z             },
2026-06-18T12:03:29.4207769Z             {
2026-06-18T12:03:29.4207909Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4208011Z               "line": 161
2026-06-18T12:03:29.4208106Z             },
2026-06-18T12:03:29.4208197Z             {
2026-06-18T12:03:29.4208319Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4208419Z               "line": 202
2026-06-18T12:03:29.4208509Z             },
2026-06-18T12:03:29.4208601Z             {
2026-06-18T12:03:29.4208709Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4208810Z               "line": 213
2026-06-18T12:03:29.4208901Z             },
2026-06-18T12:03:29.4209216Z             {
2026-06-18T12:03:29.4209348Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4209445Z               "line": 238
2026-06-18T12:03:29.4209526Z             },
2026-06-18T12:03:29.4209607Z             {
2026-06-18T12:03:29.4209735Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4209822Z               "line": 261
2026-06-18T12:03:29.4209915Z             },
2026-06-18T12:03:29.4210002Z             {
2026-06-18T12:03:29.4210235Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4210331Z               "line": 82
2026-06-18T12:03:29.4210413Z             }
2026-06-18T12:03:29.4210494Z           ]
2026-06-18T12:03:29.4210583Z         },
2026-06-18T12:03:29.4210668Z         "int": {
2026-06-18T12:03:29.4210773Z           "complete": true,
2026-06-18T12:03:29.4210862Z           "evidence": [
2026-06-18T12:03:29.4210962Z             {
2026-06-18T12:03:29.4211096Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4211200Z               "line": 285
2026-06-18T12:03:29.4211286Z             },
2026-06-18T12:03:29.4211382Z             {
2026-06-18T12:03:29.4211506Z               "path": "crates/spt-daemon/tests/pump.rs",
2026-06-18T12:03:29.4211600Z               "line": 145
2026-06-18T12:03:29.4211697Z             },
2026-06-18T12:03:29.4211782Z             {
2026-06-18T12:03:29.4211915Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4212016Z               "line": 683
2026-06-18T12:03:29.4212101Z             },
2026-06-18T12:03:29.4212182Z             {
2026-06-18T12:03:29.4212312Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4212412Z               "line": 1101
2026-06-18T12:03:29.4212497Z             }
2026-06-18T12:03:29.4212578Z           ]
2026-06-18T12:03:29.4212670Z         },
2026-06-18T12:03:29.4212764Z         "unit": {
2026-06-18T12:03:29.4212869Z           "complete": true,
2026-06-18T12:03:29.4212965Z           "evidence": [
2026-06-18T12:03:29.4213069Z             {
2026-06-18T12:03:29.4213193Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4213295Z               "line": 572
2026-06-18T12:03:29.4213370Z             },
2026-06-18T12:03:29.4213455Z             {
2026-06-18T12:03:29.4213583Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4213679Z               "line": 636
2026-06-18T12:03:29.4213774Z             },
2026-06-18T12:03:29.4213869Z             {
2026-06-18T12:03:29.4213989Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4214084Z               "line": 740
2026-06-18T12:03:29.4214174Z             },
2026-06-18T12:03:29.4214271Z             {
2026-06-18T12:03:29.4214385Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4214484Z               "line": 772
2026-06-18T12:03:29.4214571Z             },
2026-06-18T12:03:29.4214656Z             {
2026-06-18T12:03:29.4214785Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4214886Z               "line": 840
2026-06-18T12:03:29.4214962Z             },
2026-06-18T12:03:29.4215047Z             {
2026-06-18T12:03:29.4215172Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4215253Z               "line": 898
2026-06-18T12:03:29.4215342Z             },
2026-06-18T12:03:29.4215438Z             {
2026-06-18T12:03:29.4215554Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4215652Z               "line": 1173
2026-06-18T12:03:29.4215737Z             },
2026-06-18T12:03:29.4215823Z             {
2026-06-18T12:03:29.4215951Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4216050Z               "line": 157
2026-06-18T12:03:29.4216145Z             },
2026-06-18T12:03:29.4216232Z             {
2026-06-18T12:03:29.4216374Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4216464Z               "line": 250
2026-06-18T12:03:29.4216561Z             },
2026-06-18T12:03:29.4216760Z             {
2026-06-18T12:03:29.4216894Z               "path": "crates/spt-daemon/src/notifsync.rs",
2026-06-18T12:03:29.4216994Z               "line": 273
2026-06-18T12:03:29.4217075Z             },
2026-06-18T12:03:29.4217161Z             {
2026-06-18T12:03:29.4217290Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.4217395Z               "line": 355
2026-06-18T12:03:29.4217486Z             },
2026-06-18T12:03:29.4217633Z             {
2026-06-18T12:03:29.4217763Z               "path": "crates/spt-daemon/src/psyrelay.rs",
2026-06-18T12:03:29.4217853Z               "line": 392
2026-06-18T12:03:29.4217943Z             },
2026-06-18T12:03:29.4218029Z             {
2026-06-18T12:03:29.4218172Z               "path": "crates/spt-daemon/tests/notifsync.rs",
2026-06-18T12:03:29.4218267Z               "line": 131
2026-06-18T12:03:29.4218349Z             },
2026-06-18T12:03:29.4218435Z             {
2026-06-18T12:03:29.4218563Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T12:03:29.4218657Z               "line": 72
2026-06-18T12:03:29.4218743Z             },
2026-06-18T12:03:29.4218828Z             {
2026-06-18T12:03:29.4219041Z               "path": "crates/spt-net/src/net/notif.rs",
2026-06-18T12:03:29.4219118Z               "line": 97
2026-06-18T12:03:29.4219213Z             },
2026-06-18T12:03:29.4219303Z             {
2026-06-18T12:03:29.4219438Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4219542Z               "line": 379
2026-06-18T12:03:29.4219637Z             },
2026-06-18T12:03:29.4219724Z             {
2026-06-18T12:03:29.4219847Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4219942Z               "line": 417
2026-06-18T12:03:29.4220024Z             },
2026-06-18T12:03:29.4220109Z             {
2026-06-18T12:03:29.4220228Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4220325Z               "line": 433
2026-06-18T12:03:29.4220429Z             },
2026-06-18T12:03:29.4220510Z             {
2026-06-18T12:03:29.4220625Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4220706Z               "line": 472
2026-06-18T12:03:29.4220800Z             },
2026-06-18T12:03:29.4220886Z             {
2026-06-18T12:03:29.4221002Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4221101Z               "line": 489
2026-06-18T12:03:29.4221186Z             },
2026-06-18T12:03:29.4221286Z             {
2026-06-18T12:03:29.4221390Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4221488Z               "line": 517
2026-06-18T12:03:29.4221564Z             },
2026-06-18T12:03:29.4221646Z             {
2026-06-18T12:03:29.4221770Z               "path": "crates/spt-store/src/notif.rs",
2026-06-18T12:03:29.4221855Z               "line": 548
2026-06-18T12:03:29.4221942Z             },
2026-06-18T12:03:29.4222023Z             {
2026-06-18T12:03:29.4222146Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4222247Z               "line": 741
2026-06-18T12:03:29.4222338Z             }
2026-06-18T12:03:29.4222428Z           ]
2026-06-18T12:03:29.4222514Z         }
2026-06-18T12:03:29.4222605Z       }
2026-06-18T12:03:29.4222699Z     },
2026-06-18T12:03:29.4222780Z     {
2026-06-18T12:03:29.4222882Z       "id": "REQ-NOTIF-2",
2026-06-18T12:03:29.4223177Z       "title": "spt notify (agent-issued subnet notif) + notif_command manifest seam (harness + shell adapters)",
2026-06-18T12:03:29.4223287Z       "requiredStages": [
2026-06-18T12:03:29.4223367Z         "doc",
2026-06-18T12:03:29.4223458Z         "impl",
2026-06-18T12:03:29.4223540Z         "unit",
2026-06-18T12:03:29.4223634Z         "int"
2026-06-18T12:03:29.4223716Z       ],
2026-06-18T12:03:29.4223807Z       "stages": {
2026-06-18T12:03:29.4223898Z         "doc": {
2026-06-18T12:03:29.4223996Z           "complete": true,
2026-06-18T12:03:29.4224095Z           "evidence": [
2026-06-18T12:03:29.4224182Z             {
2026-06-18T12:03:29.4224386Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4224473Z               "line": 491
2026-06-18T12:03:29.4224568Z             },
2026-06-18T12:03:29.4224653Z             {
2026-06-18T12:03:29.4224763Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.4224860Z               "line": 98
2026-06-18T12:03:29.4224941Z             }
2026-06-18T12:03:29.4225035Z           ]
2026-06-18T12:03:29.4225117Z         },
2026-06-18T12:03:29.4225297Z         "impl": {
2026-06-18T12:03:29.4225402Z           "complete": true,
2026-06-18T12:03:29.4225494Z           "evidence": [
2026-06-18T12:03:29.4225579Z             {
2026-06-18T12:03:29.4225698Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4225795Z               "line": 287
2026-06-18T12:03:29.4225874Z             },
2026-06-18T12:03:29.4225960Z             {
2026-06-18T12:03:29.4226085Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4226175Z               "line": 301
2026-06-18T12:03:29.4226269Z             },
2026-06-18T12:03:29.4226359Z             {
2026-06-18T12:03:29.4226483Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4226582Z               "line": 326
2026-06-18T12:03:29.4226676Z             },
2026-06-18T12:03:29.4226763Z             {
2026-06-18T12:03:29.4226891Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4226981Z               "line": 210
2026-06-18T12:03:29.4227083Z             },
2026-06-18T12:03:29.4227173Z             {
2026-06-18T12:03:29.4227305Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4227389Z               "line": 91
2026-06-18T12:03:29.4227478Z             },
2026-06-18T12:03:29.4227554Z             {
2026-06-18T12:03:29.4227669Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4227764Z               "line": 2096
2026-06-18T12:03:29.4227854Z             },
2026-06-18T12:03:29.4227950Z             {
2026-06-18T12:03:29.4228056Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4228160Z               "line": 2145
2026-06-18T12:03:29.4228241Z             },
2026-06-18T12:03:29.4228338Z             {
2026-06-18T12:03:29.4228441Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4228536Z               "line": 2224
2026-06-18T12:03:29.4228618Z             },
2026-06-18T12:03:29.4228699Z             {
2026-06-18T12:03:29.4228813Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4228919Z               "line": 2263
2026-06-18T12:03:29.4229085Z             }
2026-06-18T12:03:29.4229169Z           ]
2026-06-18T12:03:29.4229260Z         },
2026-06-18T12:03:29.4229355Z         "int": {
2026-06-18T12:03:29.4229458Z           "complete": true,
2026-06-18T12:03:29.4229548Z           "evidence": [
2026-06-18T12:03:29.4229635Z             {
2026-06-18T12:03:29.4229768Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4229863Z               "line": 809
2026-06-18T12:03:29.4229964Z             },
2026-06-18T12:03:29.4230055Z             {
2026-06-18T12:03:29.4230177Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4230274Z               "line": 1344
2026-06-18T12:03:29.4230355Z             }
2026-06-18T12:03:29.4230450Z           ]
2026-06-18T12:03:29.4230527Z         },
2026-06-18T12:03:29.4230613Z         "unit": {
2026-06-18T12:03:29.4230712Z           "complete": true,
2026-06-18T12:03:29.4230802Z           "evidence": [
2026-06-18T12:03:29.4230895Z             {
2026-06-18T12:03:29.4231013Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4231113Z               "line": 1022
2026-06-18T12:03:29.4231195Z             },
2026-06-18T12:03:29.4231290Z             {
2026-06-18T12:03:29.4231409Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4231500Z               "line": 1090
2026-06-18T12:03:29.4231595Z             },
2026-06-18T12:03:29.4231680Z             {
2026-06-18T12:03:29.4231793Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4232001Z               "line": 7980
2026-06-18T12:03:29.4232086Z             },
2026-06-18T12:03:29.4232178Z             {
2026-06-18T12:03:29.4232288Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4232387Z               "line": 8035
2026-06-18T12:03:29.4232473Z             }
2026-06-18T12:03:29.4232560Z           ]
2026-06-18T12:03:29.4232645Z         }
2026-06-18T12:03:29.4232831Z       }
2026-06-18T12:03:29.4232917Z     },
2026-06-18T12:03:29.4233002Z     {
2026-06-18T12:03:29.4233108Z       "id": "REQ-PAIR-1",
2026-06-18T12:03:29.4233213Z       "title": "TOTP-seeded SPAKE2 pairing",
2026-06-18T12:03:29.4233317Z       "requiredStages": [
2026-06-18T12:03:29.4233408Z         "impl",
2026-06-18T12:03:29.4233485Z         "unit",
2026-06-18T12:03:29.4233570Z         "int"
2026-06-18T12:03:29.4233655Z       ],
2026-06-18T12:03:29.4233752Z       "stages": {
2026-06-18T12:03:29.4233838Z         "doc": {
2026-06-18T12:03:29.4233947Z           "complete": false,
2026-06-18T12:03:29.4234047Z           "evidence": []
2026-06-18T12:03:29.4234134Z         },
2026-06-18T12:03:29.4234227Z         "impl": {
2026-06-18T12:03:29.4234323Z           "complete": true,
2026-06-18T12:03:29.4234415Z           "evidence": [
2026-06-18T12:03:29.4234500Z             {
2026-06-18T12:03:29.4234641Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4234737Z               "line": 27
2026-06-18T12:03:29.4234834Z             },
2026-06-18T12:03:29.4234922Z             {
2026-06-18T12:03:29.4235061Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4235152Z               "line": 88
2026-06-18T12:03:29.4235233Z             },
2026-06-18T12:03:29.4235318Z             {
2026-06-18T12:03:29.4235448Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4235547Z               "line": 110
2026-06-18T12:03:29.4235638Z             },
2026-06-18T12:03:29.4235730Z             {
2026-06-18T12:03:29.4235867Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4235957Z               "line": 153
2026-06-18T12:03:29.4236040Z             },
2026-06-18T12:03:29.4236124Z             {
2026-06-18T12:03:29.4236263Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4236359Z               "line": 182
2026-06-18T12:03:29.4236448Z             },
2026-06-18T12:03:29.4236539Z             {
2026-06-18T12:03:29.4236679Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4236777Z               "line": 29
2026-06-18T12:03:29.4236868Z             },
2026-06-18T12:03:29.4236949Z             {
2026-06-18T12:03:29.4237108Z               "path": "crates/spt-net/src/net/pairing/transcript.rs",
2026-06-18T12:03:29.4237208Z               "line": 31
2026-06-18T12:03:29.4237299Z             },
2026-06-18T12:03:29.4237391Z             {
2026-06-18T12:03:29.4237528Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4237633Z               "line": 44
2026-06-18T12:03:29.4237719Z             },
2026-06-18T12:03:29.4237804Z             {
2026-06-18T12:03:29.4237939Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4238038Z               "line": 171
2026-06-18T12:03:29.4238123Z             },
2026-06-18T12:03:29.4238215Z             {
2026-06-18T12:03:29.4238353Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4238452Z               "line": 376
2026-06-18T12:03:29.4238539Z             }
2026-06-18T12:03:29.4238625Z           ]
2026-06-18T12:03:29.4238716Z         },
2026-06-18T12:03:29.4238796Z         "int": {
2026-06-18T12:03:29.4238902Z           "complete": true,
2026-06-18T12:03:29.4239068Z           "evidence": [
2026-06-18T12:03:29.4239164Z             {
2026-06-18T12:03:29.4239292Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4239378Z               "line": 644
2026-06-18T12:03:29.4239570Z             },
2026-06-18T12:03:29.4239654Z             {
2026-06-18T12:03:29.4239786Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4239883Z               "line": 886
2026-06-18T12:03:29.4239966Z             }
2026-06-18T12:03:29.4240052Z           ]
2026-06-18T12:03:29.4240138Z         },
2026-06-18T12:03:29.4240219Z         "unit": {
2026-06-18T12:03:29.4240314Z           "complete": true,
2026-06-18T12:03:29.4240510Z           "evidence": [
2026-06-18T12:03:29.4240610Z             {
2026-06-18T12:03:29.4240742Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4240849Z               "line": 236
2026-06-18T12:03:29.4240934Z             },
2026-06-18T12:03:29.4241029Z             {
2026-06-18T12:03:29.4241150Z               "path": "crates/spt-net/src/net/pairing/spake.rs",
2026-06-18T12:03:29.4241249Z               "line": 349
2026-06-18T12:03:29.4241349Z             },
2026-06-18T12:03:29.4241425Z             {
2026-06-18T12:03:29.4241573Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4241668Z               "line": 194
2026-06-18T12:03:29.4241765Z             },
2026-06-18T12:03:29.4241850Z             {
2026-06-18T12:03:29.4241983Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4242089Z               "line": 216
2026-06-18T12:03:29.4242174Z             },
2026-06-18T12:03:29.4242259Z             {
2026-06-18T12:03:29.4242396Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4242496Z               "line": 230
2026-06-18T12:03:29.4242581Z             },
2026-06-18T12:03:29.4242675Z             {
2026-06-18T12:03:29.4242801Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4242886Z               "line": 242
2026-06-18T12:03:29.4242975Z             },
2026-06-18T12:03:29.4243058Z             {
2026-06-18T12:03:29.4243196Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4243300Z               "line": 256
2026-06-18T12:03:29.4243387Z             },
2026-06-18T12:03:29.4243473Z             {
2026-06-18T12:03:29.4243595Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4243702Z               "line": 270
2026-06-18T12:03:29.4243782Z             },
2026-06-18T12:03:29.4243882Z             {
2026-06-18T12:03:29.4244012Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4244107Z               "line": 277
2026-06-18T12:03:29.4244188Z             },
2026-06-18T12:03:29.4244273Z             {
2026-06-18T12:03:29.4244412Z               "path": "crates/spt-net/src/net/pairing/totp.rs",
2026-06-18T12:03:29.4244507Z               "line": 295
2026-06-18T12:03:29.4244598Z             },
2026-06-18T12:03:29.4244689Z             {
2026-06-18T12:03:29.4244806Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4244913Z               "line": 968
2026-06-18T12:03:29.4245004Z             },
2026-06-18T12:03:29.4245088Z             {
2026-06-18T12:03:29.4245221Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4245321Z               "line": 1051
2026-06-18T12:03:29.4245403Z             },
2026-06-18T12:03:29.4245487Z             {
2026-06-18T12:03:29.4245622Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4245707Z               "line": 1121
2026-06-18T12:03:29.4245812Z             },
2026-06-18T12:03:29.4245898Z             {
2026-06-18T12:03:29.4246036Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4246140Z               "line": 1182
2026-06-18T12:03:29.4246222Z             },
2026-06-18T12:03:29.4246323Z             {
2026-06-18T12:03:29.4246441Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4246537Z               "line": 1238
2026-06-18T12:03:29.4246643Z             },
2026-06-18T12:03:29.4246752Z             {
2026-06-18T12:03:29.4246990Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4247085Z               "line": 1457
2026-06-18T12:03:29.4247181Z             }
2026-06-18T12:03:29.4247272Z           ]
2026-06-18T12:03:29.4247361Z         }
2026-06-18T12:03:29.4247451Z       }
2026-06-18T12:03:29.4247547Z     },
2026-06-18T12:03:29.4247641Z     {
2026-06-18T12:03:29.4247740Z       "id": "REQ-PAIR-2",
2026-06-18T12:03:29.4247883Z       "title": "Local trust store with TOFU + warn-on-change",
2026-06-18T12:03:29.4248059Z       "requiredStages": [],
2026-06-18T12:03:29.4248165Z       "stages": {
2026-06-18T12:03:29.4248255Z         "doc": {
2026-06-18T12:03:29.4248359Z           "complete": false,
2026-06-18T12:03:29.4248460Z           "evidence": []
2026-06-18T12:03:29.4248551Z         },
2026-06-18T12:03:29.4248646Z         "impl": {
2026-06-18T12:03:29.4248746Z           "complete": false,
2026-06-18T12:03:29.4248842Z           "evidence": []
2026-06-18T12:03:29.4248932Z         },
2026-06-18T12:03:29.4249109Z         "int": {
2026-06-18T12:03:29.4249214Z           "complete": false,
2026-06-18T12:03:29.4249304Z           "evidence": []
2026-06-18T12:03:29.4249390Z         },
2026-06-18T12:03:29.4249477Z         "unit": {
2026-06-18T12:03:29.4249580Z           "complete": false,
2026-06-18T12:03:29.4249666Z           "evidence": []
2026-06-18T12:03:29.4249763Z         }
2026-06-18T12:03:29.4249862Z       }
2026-06-18T12:03:29.4249943Z     },
2026-06-18T12:03:29.4250049Z     {
2026-06-18T12:03:29.4250149Z       "id": "REQ-PAIR-3",
2026-06-18T12:03:29.4250314Z       "title": "Fetch current pairing code from any paired node",
2026-06-18T12:03:29.4250414Z       "requiredStages": [
2026-06-18T12:03:29.4250513Z         "impl",
2026-06-18T12:03:29.4250612Z         "unit"
2026-06-18T12:03:29.4250698Z       ],
2026-06-18T12:03:29.4250789Z       "stages": {
2026-06-18T12:03:29.4250879Z         "doc": {
2026-06-18T12:03:29.4250998Z           "complete": false,
2026-06-18T12:03:29.4251108Z           "evidence": []
2026-06-18T12:03:29.4251222Z         },
2026-06-18T12:03:29.4251327Z         "impl": {
2026-06-18T12:03:29.4251428Z           "complete": true,
2026-06-18T12:03:29.4251537Z           "evidence": [
2026-06-18T12:03:29.4251637Z             {
2026-06-18T12:03:29.4251761Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4251847Z               "line": 3117
2026-06-18T12:03:29.4251951Z             },
2026-06-18T12:03:29.4252039Z             {
2026-06-18T12:03:29.4252147Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4252247Z               "line": 3186
2026-06-18T12:03:29.4252330Z             },
2026-06-18T12:03:29.4252415Z             {
2026-06-18T12:03:29.4252514Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4252620Z               "line": 3567
2026-06-18T12:03:29.4252711Z             },
2026-06-18T12:03:29.4252790Z             {
2026-06-18T12:03:29.4252894Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4252995Z               "line": 4812
2026-06-18T12:03:29.4253093Z             }
2026-06-18T12:03:29.4253169Z           ]
2026-06-18T12:03:29.4253255Z         },
2026-06-18T12:03:29.4253351Z         "int": {
2026-06-18T12:03:29.4253436Z           "complete": false,
2026-06-18T12:03:29.4253540Z           "evidence": []
2026-06-18T12:03:29.4253628Z         },
2026-06-18T12:03:29.4253723Z         "unit": {
2026-06-18T12:03:29.4253822Z           "complete": true,
2026-06-18T12:03:29.4253923Z           "evidence": [
2026-06-18T12:03:29.4254023Z             {
2026-06-18T12:03:29.4254132Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4254233Z               "line": 9734
2026-06-18T12:03:29.4254323Z             },
2026-06-18T12:03:29.4254419Z             {
2026-06-18T12:03:29.4254528Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4254619Z               "line": 9949
2026-06-18T12:03:29.4254705Z             },
2026-06-18T12:03:29.4254790Z             {
2026-06-18T12:03:29.4254901Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4255105Z               "line": 10591
2026-06-18T12:03:29.4255192Z             },
2026-06-18T12:03:29.4255282Z             {
2026-06-18T12:03:29.4255391Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4255492Z               "line": 10610
2026-06-18T12:03:29.4255578Z             },
2026-06-18T12:03:29.4255686Z             {
2026-06-18T12:03:29.4255790Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4255991Z               "line": 10634
2026-06-18T12:03:29.4256090Z             },
2026-06-18T12:03:29.4256177Z             {
2026-06-18T12:03:29.4256302Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4256405Z               "line": 10653
2026-06-18T12:03:29.4256502Z             },
2026-06-18T12:03:29.4256592Z             {
2026-06-18T12:03:29.4256701Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4256802Z               "line": 10666
2026-06-18T12:03:29.4256893Z             },
2026-06-18T12:03:29.4256988Z             {
2026-06-18T12:03:29.4257092Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4257193Z               "line": 10675
2026-06-18T12:03:29.4257273Z             }
2026-06-18T12:03:29.4257368Z           ]
2026-06-18T12:03:29.4257451Z         }
2026-06-18T12:03:29.4257537Z       }
2026-06-18T12:03:29.4257621Z     },
2026-06-18T12:03:29.4257703Z     {
2026-06-18T12:03:29.4257804Z       "id": "REQ-PAIR-4",
2026-06-18T12:03:29.4257931Z       "title": "Subnet naming on first pairing",
2026-06-18T12:03:29.4258040Z       "requiredStages": [
2026-06-18T12:03:29.4258135Z         "impl",
2026-06-18T12:03:29.4258225Z         "unit"
2026-06-18T12:03:29.4258310Z       ],
2026-06-18T12:03:29.4258405Z       "stages": {
2026-06-18T12:03:29.4258496Z         "doc": {
2026-06-18T12:03:29.4258591Z           "complete": false,
2026-06-18T12:03:29.4258691Z           "evidence": []
2026-06-18T12:03:29.4258778Z         },
2026-06-18T12:03:29.4258877Z         "impl": {
2026-06-18T12:03:29.4259045Z           "complete": true,
2026-06-18T12:03:29.4259144Z           "evidence": [
2026-06-18T12:03:29.4259235Z             {
2026-06-18T12:03:29.4259364Z               "path": "crates/spt-store/src/subnet.rs",
2026-06-18T12:03:29.4259473Z               "line": 174
2026-06-18T12:03:29.4259554Z             }
2026-06-18T12:03:29.4259644Z           ]
2026-06-18T12:03:29.4259731Z         },
2026-06-18T12:03:29.4259816Z         "int": {
2026-06-18T12:03:29.4259911Z           "complete": false,
2026-06-18T12:03:29.4260018Z           "evidence": []
2026-06-18T12:03:29.4260103Z         },
2026-06-18T12:03:29.4260189Z         "unit": {
2026-06-18T12:03:29.4260289Z           "complete": true,
2026-06-18T12:03:29.4260380Z           "evidence": [
2026-06-18T12:03:29.4260469Z             {
2026-06-18T12:03:29.4260614Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4260710Z               "line": 1294
2026-06-18T12:03:29.4260793Z             }
2026-06-18T12:03:29.4260883Z           ]
2026-06-18T12:03:29.4260983Z         }
2026-06-18T12:03:29.4261073Z       }
2026-06-18T12:03:29.4261153Z     },
2026-06-18T12:03:29.4261238Z     {
2026-06-18T12:03:29.4261335Z       "id": "REQ-PAIR-5",
2026-06-18T12:03:29.4261664Z       "title": "Multi-subnet pairing: subnet-name discovery input, create-new-names-up-front, rendezvous-token hashing",
2026-06-18T12:03:29.4261773Z       "requiredStages": [
2026-06-18T12:03:29.4261858Z         "impl",
2026-06-18T12:03:29.4261960Z         "unit",
2026-06-18T12:03:29.4262050Z         "int"
2026-06-18T12:03:29.4262144Z       ],
2026-06-18T12:03:29.4262231Z       "stages": {
2026-06-18T12:03:29.4262322Z         "doc": {
2026-06-18T12:03:29.4262426Z           "complete": false,
2026-06-18T12:03:29.4262526Z           "evidence": []
2026-06-18T12:03:29.4262618Z         },
2026-06-18T12:03:29.4262707Z         "impl": {
2026-06-18T12:03:29.4262813Z           "complete": true,
2026-06-18T12:03:29.4262909Z           "evidence": [
2026-06-18T12:03:29.4262998Z             {
2026-06-18T12:03:29.4263243Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4263341Z               "line": 44
2026-06-18T12:03:29.4263436Z             },
2026-06-18T12:03:29.4263512Z             {
2026-06-18T12:03:29.4263639Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4263734Z               "line": 96
2026-06-18T12:03:29.4263834Z             },
2026-06-18T12:03:29.4263940Z             {
2026-06-18T12:03:29.4264188Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4264302Z               "line": 107
2026-06-18T12:03:29.4264392Z             },
2026-06-18T12:03:29.4264483Z             {
2026-06-18T12:03:29.4264617Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4264716Z               "line": 124
2026-06-18T12:03:29.4264817Z             },
2026-06-18T12:03:29.4264902Z             {
2026-06-18T12:03:29.4265036Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4265137Z               "line": 155
2026-06-18T12:03:29.4265236Z             },
2026-06-18T12:03:29.4265326Z             {
2026-06-18T12:03:29.4265457Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4265550Z               "line": 195
2026-06-18T12:03:29.4265632Z             },
2026-06-18T12:03:29.4265718Z             {
2026-06-18T12:03:29.4265842Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4265946Z               "line": 251
2026-06-18T12:03:29.4266038Z             },
2026-06-18T12:03:29.4266124Z             {
2026-06-18T12:03:29.4266289Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4266388Z               "line": 33
2026-06-18T12:03:29.4266490Z             },
2026-06-18T12:03:29.4266570Z             {
2026-06-18T12:03:29.4266718Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4266814Z               "line": 45
2026-06-18T12:03:29.4266923Z             },
2026-06-18T12:03:29.4267018Z             {
2026-06-18T12:03:29.4267167Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4267266Z               "line": 59
2026-06-18T12:03:29.4267357Z             },
2026-06-18T12:03:29.4267453Z             {
2026-06-18T12:03:29.4267586Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4267697Z               "line": 376
2026-06-18T12:03:29.4267800Z             }
2026-06-18T12:03:29.4267891Z           ]
2026-06-18T12:03:29.4267982Z         },
2026-06-18T12:03:29.4268063Z         "int": {
2026-06-18T12:03:29.4268167Z           "complete": true,
2026-06-18T12:03:29.4268253Z           "evidence": [
2026-06-18T12:03:29.4268345Z             {
2026-06-18T12:03:29.4268477Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4268572Z               "line": 886
2026-06-18T12:03:29.4268672Z             },
2026-06-18T12:03:29.4268747Z             {
2026-06-18T12:03:29.4268888Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4269052Z               "line": 342
2026-06-18T12:03:29.4269137Z             }
2026-06-18T12:03:29.4269222Z           ]
2026-06-18T12:03:29.4269313Z         },
2026-06-18T12:03:29.4269404Z         "unit": {
2026-06-18T12:03:29.4269503Z           "complete": true,
2026-06-18T12:03:29.4269600Z           "evidence": [
2026-06-18T12:03:29.4269686Z             {
2026-06-18T12:03:29.4269828Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4269929Z               "line": 293
2026-06-18T12:03:29.4270020Z             },
2026-06-18T12:03:29.4270110Z             {
2026-06-18T12:03:29.4270244Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4270339Z               "line": 304
2026-06-18T12:03:29.4270424Z             },
2026-06-18T12:03:29.4270510Z             {
2026-06-18T12:03:29.4270644Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4270844Z               "line": 406
2026-06-18T12:03:29.4270940Z             },
2026-06-18T12:03:29.4271025Z             {
2026-06-18T12:03:29.4271174Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4271274Z               "line": 72
2026-06-18T12:03:29.4271358Z             },
2026-06-18T12:03:29.4271448Z             {
2026-06-18T12:03:29.4271591Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4271803Z               "line": 82
2026-06-18T12:03:29.4271885Z             },
2026-06-18T12:03:29.4271981Z             {
2026-06-18T12:03:29.4272132Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4272229Z               "line": 100
2026-06-18T12:03:29.4272310Z             },
2026-06-18T12:03:29.4272404Z             {
2026-06-18T12:03:29.4272553Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4272648Z               "line": 110
2026-06-18T12:03:29.4272738Z             },
2026-06-18T12:03:29.4272834Z             {
2026-06-18T12:03:29.4272973Z               "path": "crates/spt-net/src/net/pairing/rendezvous.rs",
2026-06-18T12:03:29.4273077Z               "line": 125
2026-06-18T12:03:29.4273164Z             },
2026-06-18T12:03:29.4273248Z             {
2026-06-18T12:03:29.4273382Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4273478Z               "line": 1044
2026-06-18T12:03:29.4273577Z             },
2026-06-18T12:03:29.4273663Z             {
2026-06-18T12:03:29.4273793Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4273883Z               "line": 1110
2026-06-18T12:03:29.4273968Z             },
2026-06-18T12:03:29.4274053Z             {
2026-06-18T12:03:29.4274181Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4274285Z               "line": 1357
2026-06-18T12:03:29.4274365Z             }
2026-06-18T12:03:29.4277478Z           ]
2026-06-18T12:03:29.4277603Z         }
2026-06-18T12:03:29.4277703Z       }
2026-06-18T12:03:29.4277802Z     },
2026-06-18T12:03:29.4277894Z     {
2026-06-18T12:03:29.4278003Z       "id": "REQ-PAIR-6",
2026-06-18T12:03:29.4278299Z       "title": "Elevation-gated per-subnet code fetch (UAC/root or elevated agent; else authenticator app)",
2026-06-18T12:03:29.4278399Z       "requiredStages": [
2026-06-18T12:03:29.4278494Z         "impl",
2026-06-18T12:03:29.4278586Z         "unit"
2026-06-18T12:03:29.4278689Z       ],
2026-06-18T12:03:29.4278775Z       "stages": {
2026-06-18T12:03:29.4278871Z         "doc": {
2026-06-18T12:03:29.4279052Z           "complete": false,
2026-06-18T12:03:29.4279146Z           "evidence": []
2026-06-18T12:03:29.4279223Z         },
2026-06-18T12:03:29.4279321Z         "impl": {
2026-06-18T12:03:29.4279415Z           "complete": true,
2026-06-18T12:03:29.4279511Z           "evidence": [
2026-06-18T12:03:29.4279588Z             {
2026-06-18T12:03:29.4279707Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4279811Z               "line": 3186
2026-06-18T12:03:29.4279908Z             },
2026-06-18T12:03:29.4279993Z             {
2026-06-18T12:03:29.4280106Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4280203Z               "line": 3567
2026-06-18T12:03:29.4280293Z             },
2026-06-18T12:03:29.4280374Z             {
2026-06-18T12:03:29.4280495Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.4280594Z               "line": 18
2026-06-18T12:03:29.4280684Z             },
2026-06-18T12:03:29.4280770Z             {
2026-06-18T12:03:29.4280889Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.4280984Z               "line": 49
2026-06-18T12:03:29.4281080Z             },
2026-06-18T12:03:29.4281176Z             {
2026-06-18T12:03:29.4281289Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.4281390Z               "line": 318
2026-06-18T12:03:29.4281481Z             }
2026-06-18T12:03:29.4281710Z           ]
2026-06-18T12:03:29.4281792Z         },
2026-06-18T12:03:29.4281876Z         "int": {
2026-06-18T12:03:29.4281980Z           "complete": false,
2026-06-18T12:03:29.4282075Z           "evidence": []
2026-06-18T12:03:29.4282156Z         },
2026-06-18T12:03:29.4282240Z         "unit": {
2026-06-18T12:03:29.4282330Z           "complete": true,
2026-06-18T12:03:29.4282426Z           "evidence": [
2026-06-18T12:03:29.4282512Z             {
2026-06-18T12:03:29.4282732Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4282817Z               "line": 10688
2026-06-18T12:03:29.4282912Z             },
2026-06-18T12:03:29.4283003Z             {
2026-06-18T12:03:29.4283113Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4283218Z               "line": 10705
2026-06-18T12:03:29.4283303Z             },
2026-06-18T12:03:29.4283390Z             {
2026-06-18T12:03:29.4283508Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.4283608Z               "line": 383
2026-06-18T12:03:29.4283705Z             },
2026-06-18T12:03:29.4283785Z             {
2026-06-18T12:03:29.4283899Z               "path": "crates/spt/src/elevation.rs",
2026-06-18T12:03:29.4283981Z               "line": 392
2026-06-18T12:03:29.4284067Z             }
2026-06-18T12:03:29.4284156Z           ]
2026-06-18T12:03:29.4284238Z         }
2026-06-18T12:03:29.4284325Z       }
2026-06-18T12:03:29.4284401Z     },
2026-06-18T12:03:29.4284494Z     {
2026-06-18T12:03:29.4284598Z       "id": "REQ-PAIR-7",
2026-06-18T12:03:29.4284779Z       "title": "Subnet icon (inline image metadata, GUI-only consumer)",
2026-06-18T12:03:29.4284887Z       "requiredStages": [],
2026-06-18T12:03:29.4284983Z       "stages": {
2026-06-18T12:03:29.4285075Z         "doc": {
2026-06-18T12:03:29.4285164Z           "complete": false,
2026-06-18T12:03:29.4285264Z           "evidence": []
2026-06-18T12:03:29.4285346Z         },
2026-06-18T12:03:29.4285441Z         "impl": {
2026-06-18T12:03:29.4285536Z           "complete": false,
2026-06-18T12:03:29.4285642Z           "evidence": []
2026-06-18T12:03:29.4285722Z         },
2026-06-18T12:03:29.4285812Z         "int": {
2026-06-18T12:03:29.4285909Z           "complete": false,
2026-06-18T12:03:29.4286009Z           "evidence": []
2026-06-18T12:03:29.4286099Z         },
2026-06-18T12:03:29.4286189Z         "unit": {
2026-06-18T12:03:29.4286291Z           "complete": false,
2026-06-18T12:03:29.4286390Z           "evidence": []
2026-06-18T12:03:29.4286480Z         }
2026-06-18T12:03:29.4286572Z       }
2026-06-18T12:03:29.4286657Z     },
2026-06-18T12:03:29.4286748Z     {
2026-06-18T12:03:29.4286843Z       "id": "REQ-PAIR-8",
2026-06-18T12:03:29.4288325Z       "title": "NTP TOTP offset: the pairing ceremony queries NTP at ceremony time (both sides) and applies the derived offset to the TOTP calculation in-process only; system-clock fallback when NTP is unreachable (offline LAN pairing unaffected — NTP failure never blocks a pairing that succeeds today); never sets the OS clock; no background sync loop (M8 decision 18; field trigger: enlyzeam clock >1 min off exceeds the ±1 window)",
2026-06-18T12:03:29.4288454Z       "requiredStages": [
2026-06-18T12:03:29.4288535Z         "impl",
2026-06-18T12:03:29.4288630Z         "unit"
2026-06-18T12:03:29.4288710Z       ],
2026-06-18T12:03:29.4288807Z       "stages": {
2026-06-18T12:03:29.4288902Z         "doc": {
2026-06-18T12:03:29.4289068Z           "complete": false,
2026-06-18T12:03:29.4289170Z           "evidence": []
2026-06-18T12:03:29.4289268Z         },
2026-06-18T12:03:29.4289364Z         "impl": {
2026-06-18T12:03:29.4289461Z           "complete": true,
2026-06-18T12:03:29.4289559Z           "evidence": [
2026-06-18T12:03:29.4289654Z             {
2026-06-18T12:03:29.4289788Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4289886Z               "line": 577
2026-06-18T12:03:29.4289971Z             },
2026-06-18T12:03:29.4290062Z             {
2026-06-18T12:03:29.4290201Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4290410Z               "line": 22
2026-06-18T12:03:29.4290510Z             },
2026-06-18T12:03:29.4290591Z             {
2026-06-18T12:03:29.4290730Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4290825Z               "line": 76
2026-06-18T12:03:29.4290900Z             },
2026-06-18T12:03:29.4290986Z             {
2026-06-18T12:03:29.4291116Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4291301Z               "line": 127
2026-06-18T12:03:29.4291393Z             }
2026-06-18T12:03:29.4291487Z           ]
2026-06-18T12:03:29.4291568Z         },
2026-06-18T12:03:29.4291655Z         "int": {
2026-06-18T12:03:29.4291750Z           "complete": false,
2026-06-18T12:03:29.4291845Z           "evidence": []
2026-06-18T12:03:29.4291931Z         },
2026-06-18T12:03:29.4292018Z         "unit": {
2026-06-18T12:03:29.4292121Z           "complete": true,
2026-06-18T12:03:29.4292203Z           "evidence": [
2026-06-18T12:03:29.4292303Z             {
2026-06-18T12:03:29.4292427Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4292516Z               "line": 183
2026-06-18T12:03:29.4292611Z             },
2026-06-18T12:03:29.4292692Z             {
2026-06-18T12:03:29.4292824Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4292919Z               "line": 195
2026-06-18T12:03:29.4292996Z             },
2026-06-18T12:03:29.4293092Z             {
2026-06-18T12:03:29.4293219Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4293302Z               "line": 211
2026-06-18T12:03:29.4293392Z             },
2026-06-18T12:03:29.4293487Z             {
2026-06-18T12:03:29.4293617Z               "path": "crates/spt-net/src/net/pairing/ntp.rs",
2026-06-18T12:03:29.4293716Z               "line": 227
2026-06-18T12:03:29.4293801Z             }
2026-06-18T12:03:29.4293883Z           ]
2026-06-18T12:03:29.4293974Z         }
2026-06-18T12:03:29.4294059Z       }
2026-06-18T12:03:29.4294149Z     },
2026-06-18T12:03:29.4294236Z     {
2026-06-18T12:03:29.4294341Z       "id": "REQ-PICKER-1",
2026-06-18T12:03:29.4298065Z       "title": "The picker renders a FOUR-state endpoint status (extending the W2 online/offline duality): the list-item square AND a color-coded STATUS line at the top of the pick-existing right-side details both show — gray OFFLINE; green ONLINE (online + PTY-controllable spt-hosted, not controlled); amber 'ONLINE - HARNESS ONLY' (online but NOT broker-PTY-controllable = harness-hosted, no broker PTY seat — today mis-shows green); blue 'ONLINE + CONTROLLED' (online + driven_by.is_some()). Derived on EndpointRow from {offline | controllable | driven_by} with precedence offline→gray, else driven_by→blue, else !controllable→amber, else green (driven_by outranks harness-only; mutually exclusive in practice — a harness-only endpoint has no broker PTY to control). The controllable discriminator is a NEW InfoJson.controllable: Option<bool> (serde-default, N-1-safe), stamped at the establish seam — cmd_listen (harness-hosted relay, no broker PTY) → Some(false); cmd_bind live_agent (spt-hosted broker PTY) → Some(true); absent → not-controllable (amber) default (harness-hosted is the common mis-reported case; one bind self-corrects). Store-projection-only (no live daemon query — doyle ruling). (v0.10.0)",
2026-06-18T12:03:29.4298251Z       "requiredStages": [
2026-06-18T12:03:29.4298336Z         "impl",
2026-06-18T12:03:29.4298457Z         "unit"
2026-06-18T12:03:29.4298547Z       ],
2026-06-18T12:03:29.4298632Z       "stages": {
2026-06-18T12:03:29.4298723Z         "doc": {
2026-06-18T12:03:29.4298813Z           "complete": false,
2026-06-18T12:03:29.4298913Z           "evidence": []
2026-06-18T12:03:29.4299072Z         },
2026-06-18T12:03:29.4299166Z         "impl": {
2026-06-18T12:03:29.4299266Z           "complete": true,
2026-06-18T12:03:29.4299362Z           "evidence": [
2026-06-18T12:03:29.4299462Z             {
2026-06-18T12:03:29.4299758Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4299857Z               "line": 239
2026-06-18T12:03:29.4299948Z             },
2026-06-18T12:03:29.4300035Z             {
2026-06-18T12:03:29.4300152Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4300247Z               "line": 237
2026-06-18T12:03:29.4300338Z             }
2026-06-18T12:03:29.4300432Z           ]
2026-06-18T12:03:29.4300517Z         },
2026-06-18T12:03:29.4300703Z         "int": {
2026-06-18T12:03:29.4300808Z           "complete": false,
2026-06-18T12:03:29.4300902Z           "evidence": []
2026-06-18T12:03:29.4300999Z         },
2026-06-18T12:03:29.4301090Z         "unit": {
2026-06-18T12:03:29.4301189Z           "complete": true,
2026-06-18T12:03:29.4301285Z           "evidence": [
2026-06-18T12:03:29.4301375Z             {
2026-06-18T12:03:29.4301499Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.4301590Z               "line": 450
2026-06-18T12:03:29.4301690Z             },
2026-06-18T12:03:29.4301766Z             {
2026-06-18T12:03:29.4301895Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4301986Z               "line": 722
2026-06-18T12:03:29.4302077Z             },
2026-06-18T12:03:29.4302157Z             {
2026-06-18T12:03:29.4302283Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4302372Z               "line": 813
2026-06-18T12:03:29.4302467Z             },
2026-06-18T12:03:29.4302554Z             {
2026-06-18T12:03:29.4302672Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4302758Z               "line": 447
2026-06-18T12:03:29.4302850Z             }
2026-06-18T12:03:29.4302926Z           ]
2026-06-18T12:03:29.4303010Z         }
2026-06-18T12:03:29.4303096Z       }
2026-06-18T12:03:29.4303177Z     },
2026-06-18T12:03:29.4303262Z     {
2026-06-18T12:03:29.4303365Z       "id": "REQ-PICKER-2",
2026-06-18T12:03:29.4305335Z       "title": "The picker's project-history loader reads the git-backed context store, not the bare working tree: data.rs project_history_for enumerates an endpoint's projects via the BranchStore branch set (the context store keeps per-project context in git branches — contextstore::project_branch(project_id), checked out to projects/<project>/<id>/ only on-demand) instead of raw std::fs::read_dir over the empty working tree (which returned empty for ALL rows incl wall-a — the operator bug). Ordered newest→oldest by branch commit recency; degrades to empty (informational pane), never fails. (v0.10.0)",
2026-06-18T12:03:29.4305465Z       "requiredStages": [
2026-06-18T12:03:29.4305549Z         "impl",
2026-06-18T12:03:29.4305643Z         "unit"
2026-06-18T12:03:29.4305733Z       ],
2026-06-18T12:03:29.4305829Z       "stages": {
2026-06-18T12:03:29.4305922Z         "doc": {
2026-06-18T12:03:29.4306017Z           "complete": false,
2026-06-18T12:03:29.4306118Z           "evidence": []
2026-06-18T12:03:29.4306205Z         },
2026-06-18T12:03:29.4306298Z         "impl": {
2026-06-18T12:03:29.4306414Z           "complete": true,
2026-06-18T12:03:29.4306509Z           "evidence": [
2026-06-18T12:03:29.4306594Z             {
2026-06-18T12:03:29.4306757Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4306862Z               "line": 183
2026-06-18T12:03:29.4306942Z             },
2026-06-18T12:03:29.4307039Z             {
2026-06-18T12:03:29.4307157Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T12:03:29.4307281Z               "line": 223
2026-06-18T12:03:29.4307373Z             }
2026-06-18T12:03:29.4307453Z           ]
2026-06-18T12:03:29.4307544Z         },
2026-06-18T12:03:29.4307629Z         "int": {
2026-06-18T12:03:29.4307735Z           "complete": false,
2026-06-18T12:03:29.4307829Z           "evidence": []
2026-06-18T12:03:29.4307925Z         },
2026-06-18T12:03:29.4308017Z         "unit": {
2026-06-18T12:03:29.4308111Z           "complete": true,
2026-06-18T12:03:29.4308211Z           "evidence": [
2026-06-18T12:03:29.4308374Z             {
2026-06-18T12:03:29.4308501Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4308596Z               "line": 655
2026-06-18T12:03:29.4308682Z             }
2026-06-18T12:03:29.4308774Z           ]
2026-06-18T12:03:29.4308858Z         }
2026-06-18T12:03:29.4309017Z       }
2026-06-18T12:03:29.4309103Z     },
2026-06-18T12:03:29.4309182Z     {
2026-06-18T12:03:29.4309284Z       "id": "REQ-PICKER-3",
2026-06-18T12:03:29.4311935Z       "title": "A self-owned subnet row reconciles its status to the LIVE roster: a Subnet-category row whose endpoint_id overlaps a local (is_local) roster id is self-owned (this node hosts it), so its status square is OVERRIDDEN with the live roster status — the WAN registry snapshot (wansend::load_snapshots) is a periodically-advertised, independently-stale projection, while the local roster (p.alive) is ground truth for an endpoint this node hosts. One status square per endpoint (CONTEXT.md:348-350 — nothing licenses opposite squares for one endpoint across its Local vs Subnet listings). A reconcile pass in data.rs after the local_rows + subnet_rows gather; BOTH category listings are preserved (Local + Subnet are legitimately distinct views — you are in your own subnet), only the STATUS is unified. (v0.10.0)",
2026-06-18T12:03:29.4312068Z       "requiredStages": [
2026-06-18T12:03:29.4312170Z         "impl",
2026-06-18T12:03:29.4312260Z         "unit"
2026-06-18T12:03:29.4312378Z       ],
2026-06-18T12:03:29.4312465Z       "stages": {
2026-06-18T12:03:29.4312570Z         "doc": {
2026-06-18T12:03:29.4312669Z           "complete": false,
2026-06-18T12:03:29.4312760Z           "evidence": []
2026-06-18T12:03:29.4312847Z         },
2026-06-18T12:03:29.4312932Z         "impl": {
2026-06-18T12:03:29.4313032Z           "complete": true,
2026-06-18T12:03:29.4313114Z           "evidence": [
2026-06-18T12:03:29.4313209Z             {
2026-06-18T12:03:29.4313332Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T12:03:29.4313448Z               "line": 87
2026-06-18T12:03:29.4313543Z             }
2026-06-18T12:03:29.4313618Z           ]
2026-06-18T12:03:29.4313698Z         },
2026-06-18T12:03:29.4313780Z         "int": {
2026-06-18T12:03:29.4313883Z           "complete": false,
2026-06-18T12:03:29.4313973Z           "evidence": []
2026-06-18T12:03:29.4314059Z         },
2026-06-18T12:03:29.4314145Z         "unit": {
2026-06-18T12:03:29.4314244Z           "complete": true,
2026-06-18T12:03:29.4314349Z           "evidence": [
2026-06-18T12:03:29.4314432Z             {
2026-06-18T12:03:29.4314555Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T12:03:29.4314654Z               "line": 293
2026-06-18T12:03:29.4314737Z             }
2026-06-18T12:03:29.4314827Z           ]
2026-06-18T12:03:29.4314916Z         }
2026-06-18T12:03:29.4315008Z       }
2026-06-18T12:03:29.4315085Z     },
2026-06-18T12:03:29.4315165Z     {
2026-06-18T12:03:29.4315275Z       "id": "REQ-PICKER-4",
2026-06-18T12:03:29.4317250Z       "title": "The picker's Subnet category renders the canonical node LABEL, not bare key-hex: a subnet row's node renders as 'LABEL (keyprefix…)' (e.g. 'HFENDULEAM (bcead52b…)') per CONTEXT.md:650 + Instance.node_label, NOT the raw node key-hex (SPT_DEV:14efb80cb… — a picker-only regression because resource_projection→ResourceRow drops node_label, so data.rs subnet_rows uses the raw row.node). Thread node_label into the picker subnet path (ResourceRow gains node_label, or subnet_rows looks it up via the registry's node_labels) and REUSE the one canonical render (format!(\"{l} ({}…)\", key_prefix) — cli.rs / wansend.rs), never a re-implementation. (v0.10.0)",
2026-06-18T12:03:29.4317384Z       "requiredStages": [
2026-06-18T12:03:29.4317474Z         "impl",
2026-06-18T12:03:29.4317555Z         "unit"
2026-06-18T12:03:29.4317661Z       ],
2026-06-18T12:03:29.4317751Z       "stages": {
2026-06-18T12:03:29.4317846Z         "doc": {
2026-06-18T12:03:29.4317938Z           "complete": false,
2026-06-18T12:03:29.4318160Z           "evidence": []
2026-06-18T12:03:29.4318253Z         },
2026-06-18T12:03:29.4318328Z         "impl": {
2026-06-18T12:03:29.4318428Z           "complete": true,
2026-06-18T12:03:29.4318509Z           "evidence": [
2026-06-18T12:03:29.4318605Z             {
2026-06-18T12:03:29.4318737Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4318829Z               "line": 353
2026-06-18T12:03:29.4318920Z             }
2026-06-18T12:03:29.4319194Z           ]
2026-06-18T12:03:29.4319291Z         },
2026-06-18T12:03:29.4319376Z         "int": {
2026-06-18T12:03:29.4319476Z           "complete": false,
2026-06-18T12:03:29.4319572Z           "evidence": []
2026-06-18T12:03:29.4319667Z         },
2026-06-18T12:03:29.4319756Z         "unit": {
2026-06-18T12:03:29.4319853Z           "complete": true,
2026-06-18T12:03:29.4319958Z           "evidence": [
2026-06-18T12:03:29.4320043Z             {
2026-06-18T12:03:29.4320182Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4320277Z               "line": 1246
2026-06-18T12:03:29.4320358Z             }
2026-06-18T12:03:29.4320444Z           ]
2026-06-18T12:03:29.4320526Z         }
2026-06-18T12:03:29.4320620Z       }
2026-06-18T12:03:29.4320696Z     },
2026-06-18T12:03:29.4320788Z     {
2026-06-18T12:03:29.4320883Z       "id": "REQ-PICKER-5",
2026-06-18T12:03:29.4324042Z       "title": "`spt endpoint list` (bare/subnet view) renders an ALIGNED table with canonical node labels: cmd_endpoint_list prints subnet rows with `\\t` TAB separators (cli.rs:~1651-1662) so variable-width endpoint_ids snap fields to different tab-stops → a RAGGED status column (operator screenshot: X/help statuses misaligned vs rt-*/sptc-*/wall-a); and it calls the node renderer with no label → bare key-hex for every row (SAME ResourceRow-drops-node_label root as REQ-PICKER-4). FIX: max-width per-column padding (mirror render_node_rows' pad, pad by char count not byte len — '…' is multibyte) replacing the tabs, and render the node via the shared node_label_display now that ResourceRow carries node_label (REQ-PICKER-4). Extract a pure row-formatter seam so the alignment+label is unit-testable. ALSO: the bare list is the SUBNET view (a just-run LOCAL perch is invisible cross-subnet until the next advertise tick), so emit a `--local` hint line so a freshly-run endpoint isn't perceived as lost. (v0.10.0; operator-flagged + doyle dispatch 2026-06-17)",
2026-06-18T12:03:29.4324197Z       "requiredStages": [
2026-06-18T12:03:29.4324316Z         "impl",
2026-06-18T12:03:29.4324406Z         "unit"
2026-06-18T12:03:29.4324490Z       ],
2026-06-18T12:03:29.4324580Z       "stages": {
2026-06-18T12:03:29.4324676Z         "doc": {
2026-06-18T12:03:29.4324772Z           "complete": false,
2026-06-18T12:03:29.4324876Z           "evidence": []
2026-06-18T12:03:29.4324962Z         },
2026-06-18T12:03:29.4325039Z         "impl": {
2026-06-18T12:03:29.4325143Z           "complete": true,
2026-06-18T12:03:29.4325238Z           "evidence": [
2026-06-18T12:03:29.4325330Z             {
2026-06-18T12:03:29.4325439Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4325548Z               "line": 1690
2026-06-18T12:03:29.4325635Z             }
2026-06-18T12:03:29.4325715Z           ]
2026-06-18T12:03:29.4325801Z         },
2026-06-18T12:03:29.4325882Z         "int": {
2026-06-18T12:03:29.4325988Z           "complete": false,
2026-06-18T12:03:29.4326077Z           "evidence": []
2026-06-18T12:03:29.4326178Z         },
2026-06-18T12:03:29.4326279Z         "unit": {
2026-06-18T12:03:29.4326378Z           "complete": true,
2026-06-18T12:03:29.4326474Z           "evidence": [
2026-06-18T12:03:29.4326565Z             {
2026-06-18T12:03:29.4326679Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4326778Z               "line": 7365
2026-06-18T12:03:29.4326868Z             }
2026-06-18T12:03:29.4326959Z           ]
2026-06-18T12:03:29.4327047Z         }
2026-06-18T12:03:29.4327132Z       }
2026-06-18T12:03:29.4327214Z     },
2026-06-18T12:03:29.4327414Z     {
2026-06-18T12:03:29.4327529Z       "id": "REQ-PICKER-ADAPTER-DESCRIPTION",
2026-06-18T12:03:29.4329026Z       "title": "The Create-new adapter-CHOICE screen of `spt endpoint run`'s picker shows a right-hand Description panel (like the Pick-existing endpoint picker's two-pane) surfacing per-adapter detail: install date, last-updated, adapter TYPE / the endpoint types it hosts, and the adapter description — so the user can see WHAT each adapter is before choosing it (today the selector lists bare names). DEFERRED fast-follow to v0.12.0 (operator 2026-06-18). (post-v0.12.0)",
2026-06-18T12:03:29.4329240Z       "requiredStages": [],
2026-06-18T12:03:29.4329327Z       "stages": {
2026-06-18T12:03:29.4329418Z         "doc": {
2026-06-18T12:03:29.4329518Z           "complete": false,
2026-06-18T12:03:29.4329612Z           "evidence": []
2026-06-18T12:03:29.4329702Z         },
2026-06-18T12:03:29.4329793Z         "impl": {
2026-06-18T12:03:29.4329894Z           "complete": false,
2026-06-18T12:03:29.4330011Z           "evidence": []
2026-06-18T12:03:29.4330103Z         },
2026-06-18T12:03:29.4330194Z         "int": {
2026-06-18T12:03:29.4330289Z           "complete": false,
2026-06-18T12:03:29.4330389Z           "evidence": []
2026-06-18T12:03:29.4330471Z         },
2026-06-18T12:03:29.4330570Z         "unit": {
2026-06-18T12:03:29.4330665Z           "complete": false,
2026-06-18T12:03:29.4330761Z           "evidence": []
2026-06-18T12:03:29.4330856Z         }
2026-06-18T12:03:29.4330947Z       }
2026-06-18T12:03:29.4331028Z     },
2026-06-18T12:03:29.4331109Z     {
2026-06-18T12:03:29.4331214Z       "id": "REQ-PRES-1",
2026-06-18T12:03:29.4332583Z       "title": "Presence resolution: the presence datum (last_active_node, last_active_endpoint, ts) gossiped subnet-wide via the agent-interaction heartbeat (rides registry distribution, visibility-gated) + one first-class most-recently-active resolution API consumed by notif first-fire, update-consent delivery, consent escalation, and shell wake resolution (M5 scope decision 1: resolution only — the PresenceChannel endpoint stays deferred)",
2026-06-18T12:03:29.4332694Z       "requiredStages": [
2026-06-18T12:03:29.4332784Z         "impl",
2026-06-18T12:03:29.4332874Z         "unit",
2026-06-18T12:03:29.4332961Z         "int"
2026-06-18T12:03:29.4333042Z       ],
2026-06-18T12:03:29.4333141Z       "stages": {
2026-06-18T12:03:29.4333237Z         "doc": {
2026-06-18T12:03:29.4333328Z           "complete": true,
2026-06-18T12:03:29.4333438Z           "evidence": [
2026-06-18T12:03:29.4333522Z             {
2026-06-18T12:03:29.4333628Z               "path": "docs/DEFERRED.md",
2026-06-18T12:03:29.4333723Z               "line": 11
2026-06-18T12:03:29.4333818Z             }
2026-06-18T12:03:29.4333910Z           ]
2026-06-18T12:03:29.4333996Z         },
2026-06-18T12:03:29.4334095Z         "impl": {
2026-06-18T12:03:29.4334191Z           "complete": true,
2026-06-18T12:03:29.4334287Z           "evidence": [
2026-06-18T12:03:29.4334376Z             {
2026-06-18T12:03:29.4334540Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4334645Z               "line": 515
2026-06-18T12:03:29.4334724Z             },
2026-06-18T12:03:29.4334814Z             {
2026-06-18T12:03:29.4334943Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4335041Z               "line": 567
2026-06-18T12:03:29.4335121Z             },
2026-06-18T12:03:29.4335208Z             {
2026-06-18T12:03:29.4335337Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4335436Z               "line": 188
2026-06-18T12:03:29.4335527Z             },
2026-06-18T12:03:29.4335609Z             {
2026-06-18T12:03:29.4335731Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4335818Z               "line": 214
2026-06-18T12:03:29.4335914Z             },
2026-06-18T12:03:29.4336000Z             {
2026-06-18T12:03:29.4336123Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4336224Z               "line": 28
2026-06-18T12:03:29.4336424Z             },
2026-06-18T12:03:29.4336515Z             {
2026-06-18T12:03:29.4336642Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4336743Z               "line": 105
2026-06-18T12:03:29.4336839Z             },
2026-06-18T12:03:29.4336929Z             {
2026-06-18T12:03:29.4337058Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4337154Z               "line": 161
2026-06-18T12:03:29.4337329Z             },
2026-06-18T12:03:29.4337404Z             {
2026-06-18T12:03:29.4337533Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4337622Z               "line": 180
2026-06-18T12:03:29.4337711Z             },
2026-06-18T12:03:29.4337798Z             {
2026-06-18T12:03:29.4337931Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4338031Z               "line": 421
2026-06-18T12:03:29.4338119Z             },
2026-06-18T12:03:29.4338199Z             {
2026-06-18T12:03:29.4338332Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4338424Z               "line": 289
2026-06-18T12:03:29.4338509Z             },
2026-06-18T12:03:29.4338594Z             {
2026-06-18T12:03:29.4338719Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4338814Z               "line": 336
2026-06-18T12:03:29.4338895Z             },
2026-06-18T12:03:29.4339063Z             {
2026-06-18T12:03:29.4339191Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4339291Z               "line": 362
2026-06-18T12:03:29.4339387Z             },
2026-06-18T12:03:29.4339495Z             {
2026-06-18T12:03:29.4339629Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4339712Z               "line": 100
2026-06-18T12:03:29.4339805Z             }
2026-06-18T12:03:29.4339887Z           ]
2026-06-18T12:03:29.4339979Z         },
2026-06-18T12:03:29.4340064Z         "int": {
2026-06-18T12:03:29.4340191Z           "complete": true,
2026-06-18T12:03:29.4340296Z           "evidence": [
2026-06-18T12:03:29.4340377Z             {
2026-06-18T12:03:29.4340515Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4340601Z               "line": 561
2026-06-18T12:03:29.4340697Z             },
2026-06-18T12:03:29.4340787Z             {
2026-06-18T12:03:29.4340900Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4341007Z               "line": 746
2026-06-18T12:03:29.4341097Z             },
2026-06-18T12:03:29.4341197Z             {
2026-06-18T12:03:29.4341313Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4341416Z               "line": 1164
2026-06-18T12:03:29.4341502Z             }
2026-06-18T12:03:29.4341588Z           ]
2026-06-18T12:03:29.4341674Z         },
2026-06-18T12:03:29.4341769Z         "unit": {
2026-06-18T12:03:29.4341864Z           "complete": true,
2026-06-18T12:03:29.4341961Z           "evidence": [
2026-06-18T12:03:29.4342064Z             {
2026-06-18T12:03:29.4342174Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4342271Z               "line": 674
2026-06-18T12:03:29.4342369Z             },
2026-06-18T12:03:29.4342454Z             {
2026-06-18T12:03:29.4342584Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4342682Z               "line": 238
2026-06-18T12:03:29.4342776Z             },
2026-06-18T12:03:29.4342867Z             {
2026-06-18T12:03:29.4342997Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4343100Z               "line": 269
2026-06-18T12:03:29.4343182Z             },
2026-06-18T12:03:29.4343278Z             {
2026-06-18T12:03:29.4343401Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4343501Z               "line": 305
2026-06-18T12:03:29.4343588Z             },
2026-06-18T12:03:29.4343678Z             {
2026-06-18T12:03:29.4343816Z               "path": "crates/spt-daemon/src/presence.rs",
2026-06-18T12:03:29.4344031Z               "line": 336
2026-06-18T12:03:29.4344131Z             },
2026-06-18T12:03:29.4344217Z             {
2026-06-18T12:03:29.4344355Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4344460Z               "line": 1217
2026-06-18T12:03:29.4344547Z             },
2026-06-18T12:03:29.4344627Z             {
2026-06-18T12:03:29.4344751Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4344951Z               "line": 1163
2026-06-18T12:03:29.4345037Z             }
2026-06-18T12:03:29.4345134Z           ]
2026-06-18T12:03:29.4345223Z         }
2026-06-18T12:03:29.4345303Z       }
2026-06-18T12:03:29.4345393Z     },
2026-06-18T12:03:29.4345479Z     {
2026-06-18T12:03:29.4345582Z       "id": "REQ-RC-1",
2026-06-18T12:03:29.4347657Z       "title": "`spt rc <id>` — user CLI attaching a local terminal to a broker-held PTY, reusing the cross-node attach machinery (attach.rs request_attach → send_attach_input pump, spt-net AttachRecord codec); local attach is the degenerate single-node case of the cross-node path (rides REQ-TERM-3 byte-stream streaming). Read-only `--view` (watch, no stdin forwarded). Clean detach that does NOT terminate the broker-held session (KNOWN-HAZARDS: PTY ownership stays with the broker; no termination on detach). Explicit detach keybind that cannot collide with harness passthrough input (legacy capsule used a ctrl-b prefix); documented. ConPTY DSR auto-answer in the attach reader (hazard 5.5).",
2026-06-18T12:03:29.4347809Z       "requiredStages": [
2026-06-18T12:03:29.4347908Z         "impl",
2026-06-18T12:03:29.4347989Z         "unit",
2026-06-18T12:03:29.4348084Z         "int"
2026-06-18T12:03:29.4348163Z       ],
2026-06-18T12:03:29.4348258Z       "stages": {
2026-06-18T12:03:29.4348344Z         "doc": {
2026-06-18T12:03:29.4348446Z           "complete": false,
2026-06-18T12:03:29.4348544Z           "evidence": []
2026-06-18T12:03:29.4348630Z         },
2026-06-18T12:03:29.4348749Z         "impl": {
2026-06-18T12:03:29.4348844Z           "complete": true,
2026-06-18T12:03:29.4348935Z           "evidence": [
2026-06-18T12:03:29.4349093Z             {
2026-06-18T12:03:29.4349211Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.4349313Z               "line": 896
2026-06-18T12:03:29.4349407Z             },
2026-06-18T12:03:29.4349502Z             {
2026-06-18T12:03:29.4349647Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4349746Z               "line": 1243
2026-06-18T12:03:29.4349841Z             },
2026-06-18T12:03:29.4349928Z             {
2026-06-18T12:03:29.4350065Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4350151Z               "line": 967
2026-06-18T12:03:29.4350247Z             },
2026-06-18T12:03:29.4350333Z             {
2026-06-18T12:03:29.4350461Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4350562Z               "line": 1001
2026-06-18T12:03:29.4350657Z             },
2026-06-18T12:03:29.4350741Z             {
2026-06-18T12:03:29.4350851Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.4350947Z               "line": 22
2026-06-18T12:03:29.4351042Z             },
2026-06-18T12:03:29.4351127Z             {
2026-06-18T12:03:29.4351233Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.4351319Z               "line": 181
2026-06-18T12:03:29.4351413Z             }
2026-06-18T12:03:29.4351500Z           ]
2026-06-18T12:03:29.4351595Z         },
2026-06-18T12:03:29.4351690Z         "int": {
2026-06-18T12:03:29.4351790Z           "complete": true,
2026-06-18T12:03:29.4351887Z           "evidence": [
2026-06-18T12:03:29.4351972Z             {
2026-06-18T12:03:29.4352109Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4352207Z               "line": 253
2026-06-18T12:03:29.4352301Z             },
2026-06-18T12:03:29.4352396Z             {
2026-06-18T12:03:29.4352521Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4352730Z               "line": 280
2026-06-18T12:03:29.4352812Z             },
2026-06-18T12:03:29.4352902Z             {
2026-06-18T12:03:29.4353024Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4353115Z               "line": 405
2026-06-18T12:03:29.4353210Z             }
2026-06-18T12:03:29.4353294Z           ]
2026-06-18T12:03:29.4353379Z         },
2026-06-18T12:03:29.4353552Z         "unit": {
2026-06-18T12:03:29.4353661Z           "complete": true,
2026-06-18T12:03:29.4353756Z           "evidence": [
2026-06-18T12:03:29.4353853Z             {
2026-06-18T12:03:29.4353971Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4354071Z               "line": 1327
2026-06-18T12:03:29.4354172Z             },
2026-06-18T12:03:29.4354257Z             {
2026-06-18T12:03:29.4354377Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.4354463Z               "line": 594
2026-06-18T12:03:29.4354567Z             },
2026-06-18T12:03:29.4354652Z             {
2026-06-18T12:03:29.4354759Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.4354858Z               "line": 623
2026-06-18T12:03:29.4354939Z             },
2026-06-18T12:03:29.4355035Z             {
2026-06-18T12:03:29.4355135Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.4355244Z               "line": 636
2026-06-18T12:03:29.4355340Z             }
2026-06-18T12:03:29.4355431Z           ]
2026-06-18T12:03:29.4355516Z         }
2026-06-18T12:03:29.4355597Z       }
2026-06-18T12:03:29.4355689Z     },
2026-06-18T12:03:29.4355774Z     {
2026-06-18T12:03:29.4355877Z       "id": "REQ-RCVIEW-1",
2026-06-18T12:03:29.4360507Z       "title": "Remote-attach controller/viewer model (CONTEXT.md:317): a session's broker OutputLog serves ONE interactive controller (input + EXCLUSIVE PTY resize; its viewport sets the size, sent on attach + every window change via crossterm Event::Resize) plus ANY NUMBER of read-only `--view` attachers (output-only, no input, no resize; client-side letterbox — center+pad when larger, clip+1-line indicator when smaller; only the local ctrl-b d detach chord). Attach intent is three-valued (`Viewer | Control | Take`, wire-default Control): Control to a FREE endpoint becomes controller, Control to a CONTROLLED endpoint is REFUSED with guidance (`--view`/`--take`) — never auto-viewer, never silent-displace. Wire adds (additive, N-1 skip-unknown): `Request.intent`, `Resize{rows,cols}` (controller-only), `Size{rows,cols}` (→viewer), `Displaced{by}` (→displaced controller). The brain-resume cursor (delivered_through, ADR-0018) tracks the CONTROLLER ONLY; viewers replay from their own from_seq and never move it. Dormancy keys on the controller ONLY: controller attach wakes / controller detach goes dormant (even with viewers present); viewer attach/detach is wake-neutral and may watch a dormant endpoint as-is. v1: viewing is gated identically to driving — a viewer runs the same access_check(Unsolicited) as a controller (watching reveals full session contents = a real disclosure); a lighter distinct watch-gate is deferred to cross-subnet/finer-consent (CONTEXT.md:317 'driving ≠ watching' = the future seam).",
2026-06-18T12:03:29.4360687Z       "requiredStages": [
2026-06-18T12:03:29.4360769Z         "doc",
2026-06-18T12:03:29.4360865Z         "impl",
2026-06-18T12:03:29.4360958Z         "unit",
2026-06-18T12:03:29.4361050Z         "int"
2026-06-18T12:03:29.4361151Z       ],
2026-06-18T12:03:29.4361246Z       "stages": {
2026-06-18T12:03:29.4361340Z         "doc": {
2026-06-18T12:03:29.4361440Z           "complete": true,
2026-06-18T12:03:29.4361536Z           "evidence": [
2026-06-18T12:03:29.4361626Z             {
2026-06-18T12:03:29.4361725Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4361818Z               "line": 342
2026-06-18T12:03:29.4361903Z             }
2026-06-18T12:03:29.4361988Z           ]
2026-06-18T12:03:29.4362084Z         },
2026-06-18T12:03:29.4362170Z         "impl": {
2026-06-18T12:03:29.4362394Z           "complete": true,
2026-06-18T12:03:29.4362494Z           "evidence": [
2026-06-18T12:03:29.4362570Z             {
2026-06-18T12:03:29.4362704Z               "path": "crates/spt-daemon/src/attach.rs",
2026-06-18T12:03:29.4362795Z               "line": 323
2026-06-18T12:03:29.4362890Z             },
2026-06-18T12:03:29.4362975Z             {
2026-06-18T12:03:29.4363110Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4363295Z               "line": 431
2026-06-18T12:03:29.4363382Z             },
2026-06-18T12:03:29.4363467Z             {
2026-06-18T12:03:29.4363589Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4363684Z               "line": 442
2026-06-18T12:03:29.4363770Z             },
2026-06-18T12:03:29.4363859Z             {
2026-06-18T12:03:29.4363992Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.4364088Z               "line": 41
2026-06-18T12:03:29.4364169Z             },
2026-06-18T12:03:29.4364259Z             {
2026-06-18T12:03:29.4364379Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.4364460Z               "line": 62
2026-06-18T12:03:29.4364550Z             },
2026-06-18T12:03:29.4364641Z             {
2026-06-18T12:03:29.4364765Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.4364865Z               "line": 297
2026-06-18T12:03:29.4364946Z             },
2026-06-18T12:03:29.4365051Z             {
2026-06-18T12:03:29.4365165Z               "path": "crates/spt/src/rc.rs",
2026-06-18T12:03:29.4365271Z               "line": 181
2026-06-18T12:03:29.4365356Z             }
2026-06-18T12:03:29.4365442Z           ]
2026-06-18T12:03:29.4365537Z         },
2026-06-18T12:03:29.4365615Z         "int": {
2026-06-18T12:03:29.4365718Z           "complete": true,
2026-06-18T12:03:29.4365814Z           "evidence": [
2026-06-18T12:03:29.4365915Z             {
2026-06-18T12:03:29.4366047Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4366162Z               "line": 791
2026-06-18T12:03:29.4366273Z             },
2026-06-18T12:03:29.4366362Z             {
2026-06-18T12:03:29.4366494Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4366595Z               "line": 831
2026-06-18T12:03:29.4366693Z             },
2026-06-18T12:03:29.4370118Z             {
2026-06-18T12:03:29.4370299Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4370419Z               "line": 878
2026-06-18T12:03:29.4370509Z             },
2026-06-18T12:03:29.4370595Z             {
2026-06-18T12:03:29.4370724Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4370829Z               "line": 990
2026-06-18T12:03:29.4370919Z             }
2026-06-18T12:03:29.4371000Z           ]
2026-06-18T12:03:29.4371086Z         },
2026-06-18T12:03:29.4371172Z         "unit": {
2026-06-18T12:03:29.4371271Z           "complete": true,
2026-06-18T12:03:29.4371354Z           "evidence": [
2026-06-18T12:03:29.4371449Z             {
2026-06-18T12:03:29.4371577Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.4371664Z               "line": 175
2026-06-18T12:03:29.4371759Z             },
2026-06-18T12:03:29.4371838Z             {
2026-06-18T12:03:29.4371966Z               "path": "crates/spt-net/src/net/attach.rs",
2026-06-18T12:03:29.4372063Z               "line": 195
2026-06-18T12:03:29.4372139Z             }
2026-06-18T12:03:29.4372238Z           ]
2026-06-18T12:03:29.4372330Z         }
2026-06-18T12:03:29.4372415Z       }
2026-06-18T12:03:29.4372501Z     },
2026-06-18T12:03:29.4372596Z     {
2026-06-18T12:03:29.4372692Z       "id": "REQ-REACH-1",
2026-06-18T12:03:29.4372858Z       "title": "Off-node remote-drive detection + file transfer",
2026-06-18T12:03:29.4372964Z       "requiredStages": [
2026-06-18T12:03:29.4373059Z         "impl",
2026-06-18T12:03:29.4373149Z         "unit",
2026-06-18T12:03:29.4373244Z         "int"
2026-06-18T12:03:29.4373327Z       ],
2026-06-18T12:03:29.4373559Z       "stages": {
2026-06-18T12:03:29.4373656Z         "doc": {
2026-06-18T12:03:29.4373768Z           "complete": false,
2026-06-18T12:03:29.4373855Z           "evidence": []
2026-06-18T12:03:29.4373942Z         },
2026-06-18T12:03:29.4374027Z         "impl": {
2026-06-18T12:03:29.4374135Z           "complete": true,
2026-06-18T12:03:29.4374231Z           "evidence": [
2026-06-18T12:03:29.4374317Z             {
2026-06-18T12:03:29.4374548Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4374648Z               "line": 431
2026-06-18T12:03:29.4374743Z             },
2026-06-18T12:03:29.4374828Z             {
2026-06-18T12:03:29.4374958Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.4375053Z               "line": 76
2026-06-18T12:03:29.4375148Z             },
2026-06-18T12:03:29.4375245Z             {
2026-06-18T12:03:29.4375359Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.4375453Z               "line": 222
2026-06-18T12:03:29.4375545Z             },
2026-06-18T12:03:29.4375640Z             {
2026-06-18T12:03:29.4375749Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.4375850Z               "line": 422
2026-06-18T12:03:29.4375945Z             },
2026-06-18T12:03:29.4376035Z             {
2026-06-18T12:03:29.4376155Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.4376250Z               "line": 529
2026-06-18T12:03:29.4376355Z             },
2026-06-18T12:03:29.4376446Z             {
2026-06-18T12:03:29.4376570Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T12:03:29.4376670Z               "line": 39
2026-06-18T12:03:29.4376761Z             },
2026-06-18T12:03:29.4376848Z             {
2026-06-18T12:03:29.4376974Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.4377064Z               "line": 289
2026-06-18T12:03:29.4377155Z             },
2026-06-18T12:03:29.4377235Z             {
2026-06-18T12:03:29.4377367Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T12:03:29.4377458Z               "line": 88
2026-06-18T12:03:29.4377549Z             },
2026-06-18T12:03:29.4377629Z             {
2026-06-18T12:03:29.4377753Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T12:03:29.4377854Z               "line": 98
2026-06-18T12:03:29.4377939Z             },
2026-06-18T12:03:29.4378034Z             {
2026-06-18T12:03:29.4378164Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4378282Z               "line": 229
2026-06-18T12:03:29.4378369Z             }
2026-06-18T12:03:29.4378460Z           ]
2026-06-18T12:03:29.4378555Z         },
2026-06-18T12:03:29.4378636Z         "int": {
2026-06-18T12:03:29.4378742Z           "complete": true,
2026-06-18T12:03:29.4378826Z           "evidence": [
2026-06-18T12:03:29.4378921Z             {
2026-06-18T12:03:29.4379132Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4379236Z               "line": 415
2026-06-18T12:03:29.4379328Z             },
2026-06-18T12:03:29.4379419Z             {
2026-06-18T12:03:29.4379550Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4379645Z               "line": 518
2026-06-18T12:03:29.4379740Z             },
2026-06-18T12:03:29.4379825Z             {
2026-06-18T12:03:29.4379962Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4380063Z               "line": 997
2026-06-18T12:03:29.4380154Z             },
2026-06-18T12:03:29.4380238Z             {
2026-06-18T12:03:29.4380368Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4380469Z               "line": 1382
2026-06-18T12:03:29.4380553Z             }
2026-06-18T12:03:29.4380650Z           ]
2026-06-18T12:03:29.4380745Z         },
2026-06-18T12:03:29.4380821Z         "unit": {
2026-06-18T12:03:29.4380926Z           "complete": true,
2026-06-18T12:03:29.4381017Z           "evidence": [
2026-06-18T12:03:29.4381116Z             {
2026-06-18T12:03:29.4381374Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.4381474Z               "line": 639
2026-06-18T12:03:29.4381555Z             },
2026-06-18T12:03:29.4381642Z             {
2026-06-18T12:03:29.4381765Z               "path": "crates/spt-daemon/src/xfer.rs",
2026-06-18T12:03:29.4381846Z               "line": 660
2026-06-18T12:03:29.4381933Z             },
2026-06-18T12:03:29.4382018Z             {
2026-06-18T12:03:29.4382248Z               "path": "crates/spt-daemon/tests/attach.rs",
2026-06-18T12:03:29.4382342Z               "line": 648
2026-06-18T12:03:29.4382432Z             },
2026-06-18T12:03:29.4382517Z             {
2026-06-18T12:03:29.4382642Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-18T12:03:29.4382737Z               "line": 93
2026-06-18T12:03:29.4382822Z             },
2026-06-18T12:03:29.4382918Z             {
2026-06-18T12:03:29.4383042Z               "path": "crates/spt-daemon/tests/xfer.rs",
2026-06-18T12:03:29.4383141Z               "line": 224
2026-06-18T12:03:29.4383228Z             },
2026-06-18T12:03:29.4383319Z             {
2026-06-18T12:03:29.4383451Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T12:03:29.4383543Z               "line": 96
2026-06-18T12:03:29.4383624Z             },
2026-06-18T12:03:29.4383719Z             {
2026-06-18T12:03:29.4383829Z               "path": "crates/spt-net/src/net/xfer.rs",
2026-06-18T12:03:29.4383934Z               "line": 146
2026-06-18T12:03:29.4384029Z             },
2026-06-18T12:03:29.4384115Z             {
2026-06-18T12:03:29.4384244Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.4384333Z               "line": 672
2026-06-18T12:03:29.4384420Z             },
2026-06-18T12:03:29.4384502Z             {
2026-06-18T12:03:29.4384625Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T12:03:29.4384710Z               "line": 118
2026-06-18T12:03:29.4384805Z             },
2026-06-18T12:03:29.4384905Z             {
2026-06-18T12:03:29.4385017Z               "path": "crates/spt-store/src/xfer.rs",
2026-06-18T12:03:29.4385123Z               "line": 148
2026-06-18T12:03:29.4385208Z             },
2026-06-18T12:03:29.4385308Z             {
2026-06-18T12:03:29.4385442Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4385533Z               "line": 924
2026-06-18T12:03:29.4385627Z             }
2026-06-18T12:03:29.4385708Z           ]
2026-06-18T12:03:29.4385810Z         }
2026-06-18T12:03:29.4385890Z       }
2026-06-18T12:03:29.4385985Z     },
2026-06-18T12:03:29.4386062Z     {
2026-06-18T12:03:29.4386158Z       "id": "REQ-REACH-2",
2026-06-18T12:03:29.4386333Z       "title": "Remote command execution (deferred, consent-gated)",
2026-06-18T12:03:29.4386439Z       "requiredStages": [],
2026-06-18T12:03:29.4386533Z       "stages": {
2026-06-18T12:03:29.4386624Z         "doc": {
2026-06-18T12:03:29.4386730Z           "complete": false,
2026-06-18T12:03:29.4386829Z           "evidence": []
2026-06-18T12:03:29.4386929Z         },
2026-06-18T12:03:29.4387031Z         "impl": {
2026-06-18T12:03:29.4387131Z           "complete": false,
2026-06-18T12:03:29.4387235Z           "evidence": []
2026-06-18T12:03:29.4387316Z         },
2026-06-18T12:03:29.4387412Z         "int": {
2026-06-18T12:03:29.4387510Z           "complete": false,
2026-06-18T12:03:29.4387605Z           "evidence": []
2026-06-18T12:03:29.4387696Z         },
2026-06-18T12:03:29.4387781Z         "unit": {
2026-06-18T12:03:29.4387894Z           "complete": false,
2026-06-18T12:03:29.4387990Z           "evidence": []
2026-06-18T12:03:29.4388080Z         }
2026-06-18T12:03:29.4388161Z       }
2026-06-18T12:03:29.4388251Z     },
2026-06-18T12:03:29.4388333Z     {
2026-06-18T12:03:29.4388443Z       "id": "REQ-READY-AGENT-RESUME",
2026-06-18T12:03:29.4392164Z       "title": "An offline ReadyAgent shows in `spt endpoint run`'s picker Resume-from-history and resumes correctly — closing the gap that today only LiveAgents do. ROOT: a harness-hosted ready bind (ReadyAgent::start_homed, ready.rs) writes info.json DIRECTLY and never appends the session ledger (unlike the shared establish_perch:250 live path), so a ready agent — though it has a session_id — produces ZERO ledger rows → the picker's offline+local Resume-from-history (which gates on ledger rows) never offers it. FIX (1): ledger the ready bind (ReadyAgent::start_homed → sessions::append Boot, mirroring establish_perch). FIX (2): `spt endpoint run --resume <session>` honors the adapter MANIFEST's endpoint TYPE — a ReadyAgent manifest (no [session.psyche_init]) resumes as a ready endpoint (poll listener, NO psyche-host); a LiveAgent (with psyche_init) as live. NO new bringup mode + NO picker changes (operator 2026-06-18): `spt endpoint run` is the spt-hosted ENDPOINT bringup for BOTH types, the type IS the adapter-manifest's concern (psyche-host already keys on psyche_init presence) — so (2) likely already holds; VERIFY at code, build only the residual. (v0.12.0)",
2026-06-18T12:03:29.4392527Z       "requiredStages": [
2026-06-18T12:03:29.4392649Z         "doc",
2026-06-18T12:03:29.4392740Z         "impl",
2026-06-18T12:03:29.4392823Z         "unit",
2026-06-18T12:03:29.4392907Z         "int"
2026-06-18T12:03:29.4392997Z       ],
2026-06-18T12:03:29.4393082Z       "stages": {
2026-06-18T12:03:29.4393173Z         "doc": {
2026-06-18T12:03:29.4393273Z           "complete": true,
2026-06-18T12:03:29.4393363Z           "evidence": [
2026-06-18T12:03:29.4393459Z             {
2026-06-18T12:03:29.4393584Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4393687Z               "line": 369
2026-06-18T12:03:29.4393779Z             }
2026-06-18T12:03:29.4393870Z           ]
2026-06-18T12:03:29.4393964Z         },
2026-06-18T12:03:29.4394050Z         "impl": {
2026-06-18T12:03:29.4394146Z           "complete": true,
2026-06-18T12:03:29.4394246Z           "evidence": [
2026-06-18T12:03:29.4394336Z             {
2026-06-18T12:03:29.4394461Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4394565Z               "line": 110
2026-06-18T12:03:29.4394655Z             }
2026-06-18T12:03:29.4394748Z           ]
2026-06-18T12:03:29.4394837Z         },
2026-06-18T12:03:29.4394923Z         "int": {
2026-06-18T12:03:29.4395028Z           "complete": true,
2026-06-18T12:03:29.4395124Z           "evidence": [
2026-06-18T12:03:29.4395208Z             {
2026-06-18T12:03:29.4395360Z               "path": "crates/spt/tests/ready_resume_ledger_e2e.rs",
2026-06-18T12:03:29.4395460Z               "line": 26
2026-06-18T12:03:29.4395549Z             }
2026-06-18T12:03:29.4395630Z           ]
2026-06-18T12:03:29.4395725Z         },
2026-06-18T12:03:29.4395808Z         "unit": {
2026-06-18T12:03:29.4395915Z           "complete": true,
2026-06-18T12:03:29.4396002Z           "evidence": [
2026-06-18T12:03:29.4396093Z             {
2026-06-18T12:03:29.4396225Z               "path": "crates/spt-msg/src/ready.rs",
2026-06-18T12:03:29.4396322Z               "line": 318
2026-06-18T12:03:29.4396417Z             }
2026-06-18T12:03:29.4396512Z           ]
2026-06-18T12:03:29.4396607Z         }
2026-06-18T12:03:29.4396704Z       }
2026-06-18T12:03:29.4396789Z     },
2026-06-18T12:03:29.4396888Z     {
2026-06-18T12:03:29.4396975Z       "id": "REQ-REL-1",
2026-06-18T12:03:29.4397380Z       "title": "spt-releases publish-target repo: README public face, licensing split, Pages docs at the permanent lapse-proof canonical URL (ADR-0014)",
2026-06-18T12:03:29.4397485Z       "requiredStages": [
2026-06-18T12:03:29.4397586Z         "doc",
2026-06-18T12:03:29.4397667Z         "impl"
2026-06-18T12:03:29.4397747Z       ],
2026-06-18T12:03:29.4397847Z       "stages": {
2026-06-18T12:03:29.4397934Z         "doc": {
2026-06-18T12:03:29.4398034Z           "complete": true,
2026-06-18T12:03:29.4398137Z           "evidence": [
2026-06-18T12:03:29.4398218Z             {
2026-06-18T12:03:29.4398454Z               "path": "docs/adr/0014-publish-target-repo-and-lapse-proof-canonical-url.md",
2026-06-18T12:03:29.4398545Z               "line": 3
2026-06-18T12:03:29.4398722Z             }
2026-06-18T12:03:29.4398802Z           ]
2026-06-18T12:03:29.4398898Z         },
2026-06-18T12:03:29.4399078Z         "impl": {
2026-06-18T12:03:29.4399169Z           "complete": true,
2026-06-18T12:03:29.4399271Z           "evidence": [
2026-06-18T12:03:29.4399361Z             {
2026-06-18T12:03:29.4399523Z               "path": ".github/workflows/docs-publish.yml",
2026-06-18T12:03:29.4399613Z               "line": 11
2026-06-18T12:03:29.4399808Z             },
2026-06-18T12:03:29.4399900Z             {
2026-06-18T12:03:29.4400008Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4400104Z               "line": 265
2026-06-18T12:03:29.4400186Z             }
2026-06-18T12:03:29.4400280Z           ]
2026-06-18T12:03:29.4400366Z         },
2026-06-18T12:03:29.4400458Z         "int": {
2026-06-18T12:03:29.4400558Z           "complete": false,
2026-06-18T12:03:29.4400656Z           "evidence": []
2026-06-18T12:03:29.4400741Z         },
2026-06-18T12:03:29.4400832Z         "unit": {
2026-06-18T12:03:29.4400936Z           "complete": false,
2026-06-18T12:03:29.4401025Z           "evidence": []
2026-06-18T12:03:29.4401116Z         }
2026-06-18T12:03:29.4401198Z       }
2026-06-18T12:03:29.4401278Z     },
2026-06-18T12:03:29.4401364Z     {
2026-06-18T12:03:29.4401455Z       "id": "REQ-REL-2",
2026-06-18T12:03:29.4401960Z       "title": "Release asset set consumable by the self-updater: platform binaries, SHA256SUMS, SignedRelease metadata, manifest schema, mock-adapter zip; tag-triggered cross-repo pipeline",
2026-06-18T12:03:29.4402070Z       "requiredStages": [
2026-06-18T12:03:29.4402170Z         "impl",
2026-06-18T12:03:29.4402251Z         "int"
2026-06-18T12:03:29.4402337Z       ],
2026-06-18T12:03:29.4402434Z       "stages": {
2026-06-18T12:03:29.4402513Z         "doc": {
2026-06-18T12:03:29.4402618Z           "complete": true,
2026-06-18T12:03:29.4402700Z           "evidence": [
2026-06-18T12:03:29.4402795Z             {
2026-06-18T12:03:29.4402914Z               "path": "docs/RELEASE-RUNBOOK.md",
2026-06-18T12:03:29.4403015Z               "line": 6
2026-06-18T12:03:29.4403110Z             }
2026-06-18T12:03:29.4403185Z           ]
2026-06-18T12:03:29.4403272Z         },
2026-06-18T12:03:29.4403358Z         "impl": {
2026-06-18T12:03:29.4403462Z           "complete": true,
2026-06-18T12:03:29.4403566Z           "evidence": [
2026-06-18T12:03:29.4403652Z             {
2026-06-18T12:03:29.4403782Z               "path": ".github/workflows/release.yml",
2026-06-18T12:03:29.4403881Z               "line": 16
2026-06-18T12:03:29.4403976Z             },
2026-06-18T12:03:29.4404067Z             {
2026-06-18T12:03:29.4404186Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4404281Z               "line": 352
2026-06-18T12:03:29.4404363Z             },
2026-06-18T12:03:29.4404458Z             {
2026-06-18T12:03:29.4404572Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4404669Z               "line": 426
2026-06-18T12:03:29.4404759Z             },
2026-06-18T12:03:29.4404858Z             {
2026-06-18T12:03:29.4404974Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4405068Z               "line": 588
2026-06-18T12:03:29.4405163Z             },
2026-06-18T12:03:29.4405240Z             {
2026-06-18T12:03:29.4405359Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4405445Z               "line": 720
2026-06-18T12:03:29.4405540Z             }
2026-06-18T12:03:29.4405637Z           ]
2026-06-18T12:03:29.4405726Z         },
2026-06-18T12:03:29.4405806Z         "int": {
2026-06-18T12:03:29.4405906Z           "complete": true,
2026-06-18T12:03:29.4406006Z           "evidence": [
2026-06-18T12:03:29.4406095Z             {
2026-06-18T12:03:29.4406247Z               "path": "crates/spt/tests/release_verify_e2e.rs",
2026-06-18T12:03:29.4406343Z               "line": 13
2026-06-18T12:03:29.4406424Z             }
2026-06-18T12:03:29.4406519Z           ]
2026-06-18T12:03:29.4406600Z         },
2026-06-18T12:03:29.4406809Z         "unit": {
2026-06-18T12:03:29.4406906Z           "complete": false,
2026-06-18T12:03:29.4407010Z           "evidence": []
2026-06-18T12:03:29.4407105Z         }
2026-06-18T12:03:29.4407192Z       }
2026-06-18T12:03:29.4407287Z     },
2026-06-18T12:03:29.4407377Z     {
2026-06-18T12:03:29.4407487Z       "id": "REQ-REL-3",
2026-06-18T12:03:29.4407940Z       "title": "Two-key release-signing trust anchor: primary + offline never-used recovery, both pubkeys embedded in the binary's trusted set, manual local signing (ADR-0015)",
2026-06-18T12:03:29.4408151Z       "requiredStages": [
2026-06-18T12:03:29.4408251Z         "impl",
2026-06-18T12:03:29.4408340Z         "unit"
2026-06-18T12:03:29.4408422Z       ],
2026-06-18T12:03:29.4408504Z       "stages": {
2026-06-18T12:03:29.4408594Z         "doc": {
2026-06-18T12:03:29.4408683Z           "complete": false,
2026-06-18T12:03:29.4408783Z           "evidence": []
2026-06-18T12:03:29.4408869Z         },
2026-06-18T12:03:29.4409033Z         "impl": {
2026-06-18T12:03:29.4409152Z           "complete": true,
2026-06-18T12:03:29.4409244Z           "evidence": [
2026-06-18T12:03:29.4409333Z             {
2026-06-18T12:03:29.4409516Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4409615Z               "line": 237
2026-06-18T12:03:29.4409710Z             },
2026-06-18T12:03:29.4409797Z             {
2026-06-18T12:03:29.4409926Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4410030Z               "line": 289
2026-06-18T12:03:29.4410112Z             },
2026-06-18T12:03:29.4410197Z             {
2026-06-18T12:03:29.4410306Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4410403Z               "line": 329
2026-06-18T12:03:29.4410489Z             },
2026-06-18T12:03:29.4410578Z             {
2026-06-18T12:03:29.4410688Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4410780Z               "line": 353
2026-06-18T12:03:29.4410873Z             },
2026-06-18T12:03:29.4410969Z             {
2026-06-18T12:03:29.4411090Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4411179Z               "line": 394
2026-06-18T12:03:29.4411269Z             }
2026-06-18T12:03:29.4411345Z           ]
2026-06-18T12:03:29.4411431Z         },
2026-06-18T12:03:29.4411529Z         "int": {
2026-06-18T12:03:29.4411624Z           "complete": false,
2026-06-18T12:03:29.4411724Z           "evidence": []
2026-06-18T12:03:29.4411825Z         },
2026-06-18T12:03:29.4411919Z         "unit": {
2026-06-18T12:03:29.4412010Z           "complete": true,
2026-06-18T12:03:29.4412110Z           "evidence": [
2026-06-18T12:03:29.4412196Z             {
2026-06-18T12:03:29.4412321Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4412425Z               "line": 1045
2026-06-18T12:03:29.4412511Z             },
2026-06-18T12:03:29.4412596Z             {
2026-06-18T12:03:29.4412707Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4412812Z               "line": 1104
2026-06-18T12:03:29.4412907Z             }
2026-06-18T12:03:29.4412989Z           ]
2026-06-18T12:03:29.4413078Z         }
2026-06-18T12:03:29.4413159Z       }
2026-06-18T12:03:29.4413250Z     },
2026-06-18T12:03:29.4413342Z     {
2026-06-18T12:03:29.4413440Z       "id": "REQ-RUN-PICKER",
2026-06-18T12:03:29.4418290Z       "title": "Interactive `spt endpoint run` picker (ratatui TUI): bare `spt endpoint run` (no --adapter/--id) enters an in-process picker (flags-present = the REQ-HOST-RUN-1 non-interactive path, untouched). Layer 1 picks kind (Create new | Pick existing). Create-new: choose a registered kind=\"harness\" adapter with its shipped+local profiles tree-nested (registry::registered / manifest.profiles / local_profile_names) → enter a charset-validated id → start. Pick-existing: category select (left/right) over [<cwd-project> | Local node | Subnet], endpoints grouped + alphabetically sorted per category, a status square per endpoint (online green ■ / offline gray ▢ — the blue \"attached\" tri-state + Kick are DEFERRED to a broker attach-presence slice, M12-W2-RULING Q1), type-to-filter (`/`, nucleo-matcher), a pinned keybind legend, and a right-half two-pane description (harness adapter:profile · best-effort project history newest→oldest from the contextstore p-<project> branches, empty-if-none · `spt endpoint description`). Confirm layer offers status-dependent options — Attach/Start/View (rc pump / cmd_endpoint_run) · Instantiate-locally (remote) · Change-harness-adapter (offline) · Fork (cmd_fork) · Resume-from-history (offline+LOCAL only; enumerate spt_store::sessions::last_k, titles `<project> @ <ts> (…id5)`, feed session_id → cmd_endpoint_run --resume). A single action enum is the source of truth so a future tap-mode (phone PTY) layers on without re-coupling to keybinds. EVERY terminal action routes through cmd_endpoint_run / existing CLI fns — no second bringup path.",
2026-06-18T12:03:29.4418634Z       "requiredStages": [
2026-06-18T12:03:29.4418730Z         "doc",
2026-06-18T12:03:29.4418839Z         "impl",
2026-06-18T12:03:29.4418934Z         "unit"
2026-06-18T12:03:29.4419112Z       ],
2026-06-18T12:03:29.4419210Z       "stages": {
2026-06-18T12:03:29.4419309Z         "doc": {
2026-06-18T12:03:29.4419396Z           "complete": true,
2026-06-18T12:03:29.4419499Z           "evidence": [
2026-06-18T12:03:29.4419579Z             {
2026-06-18T12:03:29.4419694Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4419823Z               "line": 346
2026-06-18T12:03:29.4419912Z             }
2026-06-18T12:03:29.4419994Z           ]
2026-06-18T12:03:29.4420076Z         },
2026-06-18T12:03:29.4420180Z         "impl": {
2026-06-18T12:03:29.4420280Z           "complete": true,
2026-06-18T12:03:29.4420376Z           "evidence": [
2026-06-18T12:03:29.4420467Z             {
2026-06-18T12:03:29.4420585Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4420681Z               "line": 953
2026-06-18T12:03:29.4420762Z             },
2026-06-18T12:03:29.4420862Z             {
2026-06-18T12:03:29.4420977Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4421081Z               "line": 963
2026-06-18T12:03:29.4421177Z             },
2026-06-18T12:03:29.4421258Z             {
2026-06-18T12:03:29.4421387Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T12:03:29.4421472Z               "line": 9
2026-06-18T12:03:29.4421568Z             },
2026-06-18T12:03:29.4421655Z             {
2026-06-18T12:03:29.4421781Z               "path": "crates/spt/src/picker/data.rs",
2026-06-18T12:03:29.4421876Z               "line": 67
2026-06-18T12:03:29.4421962Z             },
2026-06-18T12:03:29.4422047Z             {
2026-06-18T12:03:29.4422169Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-18T12:03:29.4422270Z               "line": 16
2026-06-18T12:03:29.4422357Z             },
2026-06-18T12:03:29.4422455Z             {
2026-06-18T12:03:29.4422571Z               "path": "crates/spt/src/picker/mod.rs",
2026-06-18T12:03:29.4422670Z               "line": 249
2026-06-18T12:03:29.4422765Z             },
2026-06-18T12:03:29.4422851Z             {
2026-06-18T12:03:29.4422976Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4423062Z               "line": 11
2026-06-18T12:03:29.4423147Z             },
2026-06-18T12:03:29.4423239Z             {
2026-06-18T12:03:29.4423362Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4423457Z               "line": 115
2026-06-18T12:03:29.4423544Z             },
2026-06-18T12:03:29.4423648Z             {
2026-06-18T12:03:29.4423782Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4423887Z               "line": 519
2026-06-18T12:03:29.4423995Z             },
2026-06-18T12:03:29.4424091Z             {
2026-06-18T12:03:29.4424217Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4424310Z               "line": 600
2026-06-18T12:03:29.4424406Z             },
2026-06-18T12:03:29.4424498Z             {
2026-06-18T12:03:29.4424748Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4424849Z               "line": 653
2026-06-18T12:03:29.4424931Z             },
2026-06-18T12:03:29.4425015Z             {
2026-06-18T12:03:29.4425139Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4425240Z               "line": 8
2026-06-18T12:03:29.4425315Z             }
2026-06-18T12:03:29.4425401Z           ]
2026-06-18T12:03:29.4425588Z         },
2026-06-18T12:03:29.4425678Z         "int": {
2026-06-18T12:03:29.4425784Z           "complete": false,
2026-06-18T12:03:29.4425883Z           "evidence": []
2026-06-18T12:03:29.4425968Z         },
2026-06-18T12:03:29.4426060Z         "unit": {
2026-06-18T12:03:29.4426160Z           "complete": true,
2026-06-18T12:03:29.4426265Z           "evidence": [
2026-06-18T12:03:29.4426350Z             {
2026-06-18T12:03:29.4426466Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4426565Z               "line": 7477
2026-06-18T12:03:29.4426670Z             },
2026-06-18T12:03:29.4426762Z             {
2026-06-18T12:03:29.4426879Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4426979Z               "line": 7488
2026-06-18T12:03:29.4427070Z             },
2026-06-18T12:03:29.4427163Z             {
2026-06-18T12:03:29.4427277Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4427377Z               "line": 806
2026-06-18T12:03:29.4427469Z             },
2026-06-18T12:03:29.4427568Z             {
2026-06-18T12:03:29.4427702Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4427797Z               "line": 855
2026-06-18T12:03:29.4427892Z             },
2026-06-18T12:03:29.4427983Z             {
2026-06-18T12:03:29.4428102Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4428211Z               "line": 872
2026-06-18T12:03:29.4428298Z             },
2026-06-18T12:03:29.4428384Z             {
2026-06-18T12:03:29.4428507Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4428622Z               "line": 892
2026-06-18T12:03:29.4428708Z             },
2026-06-18T12:03:29.4428798Z             {
2026-06-18T12:03:29.4428917Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4429098Z               "line": 906
2026-06-18T12:03:29.4429199Z             },
2026-06-18T12:03:29.4429281Z             {
2026-06-18T12:03:29.4429403Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4429499Z               "line": 915
2026-06-18T12:03:29.4429600Z             },
2026-06-18T12:03:29.4429695Z             {
2026-06-18T12:03:29.4429803Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4429912Z               "line": 926
2026-06-18T12:03:29.4429993Z             },
2026-06-18T12:03:29.4430092Z             {
2026-06-18T12:03:29.4430211Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4430297Z               "line": 948
2026-06-18T12:03:29.4430402Z             },
2026-06-18T12:03:29.4430482Z             {
2026-06-18T12:03:29.4430602Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4430688Z               "line": 967
2026-06-18T12:03:29.4430769Z             },
2026-06-18T12:03:29.4430864Z             {
2026-06-18T12:03:29.4430979Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4431083Z               "line": 1004
2026-06-18T12:03:29.4431160Z             },
2026-06-18T12:03:29.4431265Z             {
2026-06-18T12:03:29.4431384Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4431484Z               "line": 1033
2026-06-18T12:03:29.4431571Z             },
2026-06-18T12:03:29.4431665Z             {
2026-06-18T12:03:29.4431789Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4431881Z               "line": 1046
2026-06-18T12:03:29.4431975Z             },
2026-06-18T12:03:29.4432071Z             {
2026-06-18T12:03:29.4432200Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4432417Z               "line": 1090
2026-06-18T12:03:29.4432518Z             },
2026-06-18T12:03:29.4432616Z             {
2026-06-18T12:03:29.4432729Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4432835Z               "line": 1117
2026-06-18T12:03:29.4432936Z             },
2026-06-18T12:03:29.4433034Z             {
2026-06-18T12:03:29.4433155Z               "path": "crates/spt/src/picker/model.rs",
2026-06-18T12:03:29.4433349Z               "line": 1133
2026-06-18T12:03:29.4433446Z             },
2026-06-18T12:03:29.4433532Z             {
2026-06-18T12:03:29.4433659Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4433746Z               "line": 483
2026-06-18T12:03:29.4433841Z             },
2026-06-18T12:03:29.4433927Z             {
2026-06-18T12:03:29.4434046Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4434147Z               "line": 495
2026-06-18T12:03:29.4434237Z             },
2026-06-18T12:03:29.4434322Z             {
2026-06-18T12:03:29.4434438Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4434537Z               "line": 513
2026-06-18T12:03:29.4434637Z             },
2026-06-18T12:03:29.4434725Z             {
2026-06-18T12:03:29.4434847Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4434942Z               "line": 535
2026-06-18T12:03:29.4435020Z             },
2026-06-18T12:03:29.4435120Z             {
2026-06-18T12:03:29.4435242Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4435337Z               "line": 545
2026-06-18T12:03:29.4435419Z             },
2026-06-18T12:03:29.4435514Z             {
2026-06-18T12:03:29.4435633Z               "path": "crates/spt/src/picker/view.rs",
2026-06-18T12:03:29.4435734Z               "line": 568
2026-06-18T12:03:29.4435829Z             }
2026-06-18T12:03:29.4435923Z           ]
2026-06-18T12:03:29.4436020Z         }
2026-06-18T12:03:29.4436119Z       }
2026-06-18T12:03:29.4436219Z     },
2026-06-18T12:03:29.4436305Z     {
2026-06-18T12:03:29.4436415Z       "id": "REQ-RUN-SHORTCUT",
2026-06-18T12:03:29.4441314Z       "title": "`<basename>-<id>` launcher shortcut generation (picker `s` keybind, M12-W2-T2.4): from any pre-start options set the picker writes/updates a `<basename>-<id>` launcher at the project root baking the current selection's non-interactive `spt endpoint run` flags (terminal actions only: adapter[:profile] + id + (create|resume) + (start|attach|view); Kick/Instantiate/Change-adapter/Fork are interactive-only, not bakeable). BASENAME IS A PARAMETER (operator rev. 2026-06-14): harness-agnostic spt-core defaults to `spt` (→ `spt-<id>`); an adapter/flow OVERRIDES it (spt-claude-code → `cc`), so spt-core NEVER bakes `cc` (a harness name) into itself. The basename must be a DISTINCT token, never bare `spt` (a `spt.cmd` would shadow the real `spt.exe` only under cmd.exe cwd-first search, silently no-op in PowerShell/Unix, and self-recurse). The script is the CURRENT OS's native form — `.cmd` on Windows (NOT `.ps1`: default PATHEXT excludes `.ps1` so a bare/ext-less name never resolves one; `.cmd` is PATHEXT-resolvable), POSIX `sh` (+chmod +x) on Unix (a single portable form can't be both). The generated header documents the invocation reality (cmd.exe bare `<name>` in the project dir / PowerShell `.\\<name>` / Unix `./<name>`; a truly-bare basename on PATH = a PATH-installed launcher, `/spt:setup`'s job). Overwrite is SENTINEL-guarded: the generator writes + checks a generated-by header marker — it overwrites its own prior output freely, but REFUSES + warns if a same-named file lacks the sentinel (never clobber a user file). Requires the additive `--create` flag on `Run{}` (the default-fresh made explicit; N-1-safe).",
2026-06-18T12:03:29.4441473Z       "requiredStages": [
2026-06-18T12:03:29.4441563Z         "doc",
2026-06-18T12:03:29.4441662Z         "impl",
2026-06-18T12:03:29.4441749Z         "unit"
2026-06-18T12:03:29.4441844Z       ],
2026-06-18T12:03:29.4442064Z       "stages": {
2026-06-18T12:03:29.4442154Z         "doc": {
2026-06-18T12:03:29.4442254Z           "complete": true,
2026-06-18T12:03:29.4442349Z           "evidence": [
2026-06-18T12:03:29.4442455Z             {
2026-06-18T12:03:29.4442564Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4442654Z               "line": 387
2026-06-18T12:03:29.4442761Z             }
2026-06-18T12:03:29.4442845Z           ]
2026-06-18T12:03:29.4443073Z         },
2026-06-18T12:03:29.4443162Z         "impl": {
2026-06-18T12:03:29.4443266Z           "complete": true,
2026-06-18T12:03:29.4443347Z           "evidence": [
2026-06-18T12:03:29.4443444Z             {
2026-06-18T12:03:29.4443581Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4443676Z               "line": 39
2026-06-18T12:03:29.4443758Z             },
2026-06-18T12:03:29.4443848Z             {
2026-06-18T12:03:29.4443977Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4444082Z               "line": 79
2026-06-18T12:03:29.4444177Z             },
2026-06-18T12:03:29.4444267Z             {
2026-06-18T12:03:29.4444392Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4444487Z               "line": 162
2026-06-18T12:03:29.4444577Z             }
2026-06-18T12:03:29.4444678Z           ]
2026-06-18T12:03:29.4444759Z         },
2026-06-18T12:03:29.4444845Z         "int": {
2026-06-18T12:03:29.4444950Z           "complete": false,
2026-06-18T12:03:29.4445050Z           "evidence": []
2026-06-18T12:03:29.4445135Z         },
2026-06-18T12:03:29.4445226Z         "unit": {
2026-06-18T12:03:29.4445332Z           "complete": true,
2026-06-18T12:03:29.4445416Z           "evidence": [
2026-06-18T12:03:29.4445512Z             {
2026-06-18T12:03:29.4445628Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4445722Z               "line": 206
2026-06-18T12:03:29.4445816Z             },
2026-06-18T12:03:29.4445902Z             {
2026-06-18T12:03:29.4446032Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4446121Z               "line": 222
2026-06-18T12:03:29.4446216Z             },
2026-06-18T12:03:29.4446299Z             {
2026-06-18T12:03:29.4446422Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4446517Z               "line": 238
2026-06-18T12:03:29.4446599Z             },
2026-06-18T12:03:29.4446694Z             {
2026-06-18T12:03:29.4446822Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4446914Z               "line": 251
2026-06-18T12:03:29.4447013Z             },
2026-06-18T12:03:29.4447099Z             {
2026-06-18T12:03:29.4447228Z               "path": "crates/spt/src/picker/shortcut.rs",
2026-06-18T12:03:29.4447323Z               "line": 258
2026-06-18T12:03:29.4447418Z             }
2026-06-18T12:03:29.4447515Z           ]
2026-06-18T12:03:29.4447600Z         }
2026-06-18T12:03:29.4447704Z       }
2026-06-18T12:03:29.4447781Z     },
2026-06-18T12:03:29.4447868Z     {
2026-06-18T12:03:29.4447971Z       "id": "REQ-SEAM-ACTIVITY",
2026-06-18T12:03:29.4448166Z       "title": "Activity/idle reported via api sentinels, not PTY quiescence",
2026-06-18T12:03:29.4448275Z       "requiredStages": [
2026-06-18T12:03:29.4448354Z         "impl",
2026-06-18T12:03:29.4448454Z         "unit"
2026-06-18T12:03:29.4448541Z       ],
2026-06-18T12:03:29.4448631Z       "stages": {
2026-06-18T12:03:29.4448716Z         "doc": {
2026-06-18T12:03:29.4448831Z           "complete": false,
2026-06-18T12:03:29.4448927Z           "evidence": []
2026-06-18T12:03:29.4449074Z         },
2026-06-18T12:03:29.4449166Z         "impl": {
2026-06-18T12:03:29.4449256Z           "complete": true,
2026-06-18T12:03:29.4449355Z           "evidence": [
2026-06-18T12:03:29.4449442Z             {
2026-06-18T12:03:29.4449575Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4449679Z               "line": 18
2026-06-18T12:03:29.4449767Z             },
2026-06-18T12:03:29.4449970Z             {
2026-06-18T12:03:29.4450091Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4450190Z               "line": 35
2026-06-18T12:03:29.4450281Z             },
2026-06-18T12:03:29.4450372Z             {
2026-06-18T12:03:29.4450496Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4450586Z               "line": 72
2026-06-18T12:03:29.4450672Z             }
2026-06-18T12:03:29.4450857Z           ]
2026-06-18T12:03:29.4454004Z         },
2026-06-18T12:03:29.4454117Z         "int": {
2026-06-18T12:03:29.4454232Z           "complete": false,
2026-06-18T12:03:29.4454337Z           "evidence": []
2026-06-18T12:03:29.4454422Z         },
2026-06-18T12:03:29.4454522Z         "unit": {
2026-06-18T12:03:29.4454628Z           "complete": true,
2026-06-18T12:03:29.4454728Z           "evidence": [
2026-06-18T12:03:29.4454818Z             {
2026-06-18T12:03:29.4454961Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4455076Z               "line": 239
2026-06-18T12:03:29.4455166Z             },
2026-06-18T12:03:29.4455267Z             {
2026-06-18T12:03:29.4455395Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4455501Z               "line": 256
2026-06-18T12:03:29.4455596Z             },
2026-06-18T12:03:29.4455700Z             {
2026-06-18T12:03:29.4455825Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4455925Z               "line": 265
2026-06-18T12:03:29.4456019Z             }
2026-06-18T12:03:29.4456106Z           ]
2026-06-18T12:03:29.4456188Z         }
2026-06-18T12:03:29.4456273Z       }
2026-06-18T12:03:29.4456358Z     },
2026-06-18T12:03:29.4456453Z     {
2026-06-18T12:03:29.4456563Z       "id": "REQ-SEAM-CAPABILITY",
2026-06-18T12:03:29.4456733Z       "title": "Hostable endpoint-types capability declaration",
2026-06-18T12:03:29.4456825Z       "requiredStages": [
2026-06-18T12:03:29.4456925Z         "impl",
2026-06-18T12:03:29.4457006Z         "unit"
2026-06-18T12:03:29.4457106Z       ],
2026-06-18T12:03:29.4457202Z       "stages": {
2026-06-18T12:03:29.4457288Z         "doc": {
2026-06-18T12:03:29.4457392Z           "complete": false,
2026-06-18T12:03:29.4457479Z           "evidence": []
2026-06-18T12:03:29.4457564Z         },
2026-06-18T12:03:29.4457654Z         "impl": {
2026-06-18T12:03:29.4457755Z           "complete": true,
2026-06-18T12:03:29.4457860Z           "evidence": [
2026-06-18T12:03:29.4457941Z             {
2026-06-18T12:03:29.4458080Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4458175Z               "line": 594
2026-06-18T12:03:29.4458269Z             }
2026-06-18T12:03:29.4458356Z           ]
2026-06-18T12:03:29.4458447Z         },
2026-06-18T12:03:29.4458536Z         "int": {
2026-06-18T12:03:29.4458636Z           "complete": false,
2026-06-18T12:03:29.4458741Z           "evidence": []
2026-06-18T12:03:29.4458830Z         },
2026-06-18T12:03:29.4458929Z         "unit": {
2026-06-18T12:03:29.4459086Z           "complete": true,
2026-06-18T12:03:29.4459191Z           "evidence": [
2026-06-18T12:03:29.4459267Z             {
2026-06-18T12:03:29.4459401Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4459487Z               "line": 963
2026-06-18T12:03:29.4459581Z             }
2026-06-18T12:03:29.4459678Z           ]
2026-06-18T12:03:29.4459764Z         }
2026-06-18T12:03:29.4459854Z       }
2026-06-18T12:03:29.4459930Z     },
2026-06-18T12:03:29.4460026Z     {
2026-06-18T12:03:29.4460130Z       "id": "REQ-SEAM-HISTORY",
2026-06-18T12:03:29.4460327Z       "title": "History subsystem (fetcher / locate-normalize / native store)",
2026-06-18T12:03:29.4460436Z       "requiredStages": [
2026-06-18T12:03:29.4460531Z         "impl",
2026-06-18T12:03:29.4460627Z         "unit",
2026-06-18T12:03:29.4460713Z         "int"
2026-06-18T12:03:29.4460793Z       ],
2026-06-18T12:03:29.4460898Z       "stages": {
2026-06-18T12:03:29.4460985Z         "doc": {
2026-06-18T12:03:29.4461089Z           "complete": false,
2026-06-18T12:03:29.4461314Z           "evidence": []
2026-06-18T12:03:29.4461399Z         },
2026-06-18T12:03:29.4461479Z         "impl": {
2026-06-18T12:03:29.4461589Z           "complete": true,
2026-06-18T12:03:29.4461688Z           "evidence": [
2026-06-18T12:03:29.4461772Z             {
2026-06-18T12:03:29.4461906Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.4462006Z               "line": 24
2026-06-18T12:03:29.4462196Z             },
2026-06-18T12:03:29.4462279Z             {
2026-06-18T12:03:29.4462407Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4462501Z               "line": 22
2026-06-18T12:03:29.4462588Z             }
2026-06-18T12:03:29.4462683Z           ]
2026-06-18T12:03:29.4462768Z         },
2026-06-18T12:03:29.4462859Z         "int": {
2026-06-18T12:03:29.4462951Z           "complete": true,
2026-06-18T12:03:29.4463041Z           "evidence": [
2026-06-18T12:03:29.4463126Z             {
2026-06-18T12:03:29.4463256Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:29.4463355Z               "line": 260
2026-06-18T12:03:29.4463441Z             }
2026-06-18T12:03:29.4463528Z           ]
2026-06-18T12:03:29.4463618Z         },
2026-06-18T12:03:29.4463718Z         "unit": {
2026-06-18T12:03:29.4463819Z           "complete": true,
2026-06-18T12:03:29.4463900Z           "evidence": [
2026-06-18T12:03:29.4463989Z             {
2026-06-18T12:03:29.4464107Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.4464208Z               "line": 171
2026-06-18T12:03:29.4464297Z             },
2026-06-18T12:03:29.4464382Z             {
2026-06-18T12:03:29.4464491Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.4464588Z               "line": 200
2026-06-18T12:03:29.4464677Z             },
2026-06-18T12:03:29.4464763Z             {
2026-06-18T12:03:29.4464878Z               "path": "crates/spt-live/src/echo.rs",
2026-06-18T12:03:29.4464978Z               "line": 220
2026-06-18T12:03:29.4465073Z             },
2026-06-18T12:03:29.4465165Z             {
2026-06-18T12:03:29.4465288Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4465387Z               "line": 199
2026-06-18T12:03:29.4465470Z             },
2026-06-18T12:03:29.4465564Z             {
2026-06-18T12:03:29.4465679Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4465765Z               "line": 219
2026-06-18T12:03:29.4465870Z             },
2026-06-18T12:03:29.4465951Z             {
2026-06-18T12:03:29.4466075Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4466165Z               "line": 244
2026-06-18T12:03:29.4466251Z             },
2026-06-18T12:03:29.4466341Z             {
2026-06-18T12:03:29.4466457Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4466551Z               "line": 276
2026-06-18T12:03:29.4466642Z             },
2026-06-18T12:03:29.4466734Z             {
2026-06-18T12:03:29.4466851Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4466946Z               "line": 297
2026-06-18T12:03:29.4467041Z             },
2026-06-18T12:03:29.4467133Z             {
2026-06-18T12:03:29.4467261Z               "path": "crates/spt-live/src/history.rs",
2026-06-18T12:03:29.4467356Z               "line": 324
2026-06-18T12:03:29.4467452Z             }
2026-06-18T12:03:29.4467533Z           ]
2026-06-18T12:03:29.4467627Z         }
2026-06-18T12:03:29.4467724Z       }
2026-06-18T12:03:29.4467819Z     },
2026-06-18T12:03:29.4467909Z     {
2026-06-18T12:03:29.4468015Z       "id": "REQ-SEAM-INJECT",
2026-06-18T12:03:29.4468191Z       "title": "inject-input methods configurable per activity-state",
2026-06-18T12:03:29.4468296Z       "requiredStages": [
2026-06-18T12:03:29.4468387Z         "impl",
2026-06-18T12:03:29.4468477Z         "unit"
2026-06-18T12:03:29.4468567Z       ],
2026-06-18T12:03:29.4468664Z       "stages": {
2026-06-18T12:03:29.4468754Z         "doc": {
2026-06-18T12:03:29.4469007Z           "complete": false,
2026-06-18T12:03:29.4469101Z           "evidence": []
2026-06-18T12:03:29.4469181Z         },
2026-06-18T12:03:29.4469281Z         "impl": {
2026-06-18T12:03:29.4469381Z           "complete": true,
2026-06-18T12:03:29.4469475Z           "evidence": [
2026-06-18T12:03:29.4469565Z             {
2026-06-18T12:03:29.4469695Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4469790Z               "line": 19
2026-06-18T12:03:29.4469981Z             },
2026-06-18T12:03:29.4470076Z             {
2026-06-18T12:03:29.4470194Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4470291Z               "line": 111
2026-06-18T12:03:29.4470371Z             }
2026-06-18T12:03:29.4470457Z           ]
2026-06-18T12:03:29.4470543Z         },
2026-06-18T12:03:29.4470634Z         "int": {
2026-06-18T12:03:29.4470738Z           "complete": false,
2026-06-18T12:03:29.4470839Z           "evidence": []
2026-06-18T12:03:29.4470934Z         },
2026-06-18T12:03:29.4471029Z         "unit": {
2026-06-18T12:03:29.4471134Z           "complete": true,
2026-06-18T12:03:29.4471230Z           "evidence": [
2026-06-18T12:03:29.4471330Z             {
2026-06-18T12:03:29.4471443Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4471536Z               "line": 345
2026-06-18T12:03:29.4471626Z             },
2026-06-18T12:03:29.4471716Z             {
2026-06-18T12:03:29.4471831Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4471931Z               "line": 365
2026-06-18T12:03:29.4472015Z             }
2026-06-18T12:03:29.4472110Z           ]
2026-06-18T12:03:29.4472191Z         }
2026-06-18T12:03:29.4472276Z       }
2026-06-18T12:03:29.4472361Z     },
2026-06-18T12:03:29.4472461Z     {
2026-06-18T12:03:29.4472562Z       "id": "REQ-SEAM-POSTSPAWN",
2026-06-18T12:03:29.4472708Z       "title": "post-spawn / api bind seam with boot nonce",
2026-06-18T12:03:29.4472814Z       "requiredStages": [
2026-06-18T12:03:29.4472905Z         "impl",
2026-06-18T12:03:29.4473009Z         "unit"
2026-06-18T12:03:29.4473090Z       ],
2026-06-18T12:03:29.4473182Z       "stages": {
2026-06-18T12:03:29.4473268Z         "doc": {
2026-06-18T12:03:29.4473371Z           "complete": false,
2026-06-18T12:03:29.4473477Z           "evidence": []
2026-06-18T12:03:29.4473562Z         },
2026-06-18T12:03:29.4473653Z         "impl": {
2026-06-18T12:03:29.4473749Z           "complete": true,
2026-06-18T12:03:29.4473859Z           "evidence": [
2026-06-18T12:03:29.4473949Z             {
2026-06-18T12:03:29.4474074Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4474179Z               "line": 18
2026-06-18T12:03:29.4474268Z             },
2026-06-18T12:03:29.4474355Z             {
2026-06-18T12:03:29.4474465Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4474568Z               "line": 407
2026-06-18T12:03:29.4474653Z             }
2026-06-18T12:03:29.4474739Z           ]
2026-06-18T12:03:29.4474843Z         },
2026-06-18T12:03:29.4474928Z         "int": {
2026-06-18T12:03:29.4475028Z           "complete": false,
2026-06-18T12:03:29.4475119Z           "evidence": []
2026-06-18T12:03:29.4475209Z         },
2026-06-18T12:03:29.4475285Z         "unit": {
2026-06-18T12:03:29.4475391Z           "complete": true,
2026-06-18T12:03:29.4475491Z           "evidence": [
2026-06-18T12:03:29.4475566Z             {
2026-06-18T12:03:29.4475696Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4475796Z               "line": 764
2026-06-18T12:03:29.4475885Z             },
2026-06-18T12:03:29.4475962Z             {
2026-06-18T12:03:29.4476087Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4476182Z               "line": 774
2026-06-18T12:03:29.4476272Z             }
2026-06-18T12:03:29.4476364Z           ]
2026-06-18T12:03:29.4476448Z         }
2026-06-18T12:03:29.4476563Z       }
2026-06-18T12:03:29.4476655Z     },
2026-06-18T12:03:29.4476749Z     {
2026-06-18T12:03:29.4477101Z       "id": "REQ-SEAM-PSYCHE",
2026-06-18T12:03:29.4477251Z       "title": "spawn-psyche seam (fresh + resume templates)",
2026-06-18T12:03:29.4477356Z       "requiredStages": [
2026-06-18T12:03:29.4477439Z         "impl",
2026-06-18T12:03:29.4477534Z         "unit",
2026-06-18T12:03:29.4477626Z         "int"
2026-06-18T12:03:29.4477713Z       ],
2026-06-18T12:03:29.4477802Z       "stages": {
2026-06-18T12:03:29.4477883Z         "doc": {
2026-06-18T12:03:29.4478051Z           "complete": false,
2026-06-18T12:03:29.4478150Z           "evidence": []
2026-06-18T12:03:29.4478227Z         },
2026-06-18T12:03:29.4478317Z         "impl": {
2026-06-18T12:03:29.4478422Z           "complete": true,
2026-06-18T12:03:29.4478522Z           "evidence": [
2026-06-18T12:03:29.4478604Z             {
2026-06-18T12:03:29.4478737Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T12:03:29.4478827Z               "line": 19
2026-06-18T12:03:29.4478909Z             },
2026-06-18T12:03:29.4479075Z             {
2026-06-18T12:03:29.4479195Z               "path": "crates/spt/src/api/live.rs",
2026-06-18T12:03:29.4479295Z               "line": 12
2026-06-18T12:03:29.4479389Z             },
2026-06-18T12:03:29.4479485Z             {
2026-06-18T12:03:29.4479600Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4479709Z               "line": 277
2026-06-18T12:03:29.4479784Z             }
2026-06-18T12:03:29.4479885Z           ]
2026-06-18T12:03:29.4480021Z         },
2026-06-18T12:03:29.4480101Z         "int": {
2026-06-18T12:03:29.4480202Z           "complete": true,
2026-06-18T12:03:29.4480293Z           "evidence": [
2026-06-18T12:03:29.4480392Z             {
2026-06-18T12:03:29.4480522Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:29.4480622Z               "line": 259
2026-06-18T12:03:29.4480716Z             }
2026-06-18T12:03:29.4480798Z           ]
2026-06-18T12:03:29.4480880Z         },
2026-06-18T12:03:29.4480960Z         "unit": {
2026-06-18T12:03:29.4481074Z           "complete": true,
2026-06-18T12:03:29.4481170Z           "evidence": [
2026-06-18T12:03:29.4481256Z             {
2026-06-18T12:03:29.4481384Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T12:03:29.4481467Z               "line": 195
2026-06-18T12:03:29.4481556Z             },
2026-06-18T12:03:29.4481642Z             {
2026-06-18T12:03:29.4481762Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T12:03:29.4481852Z               "line": 202
2026-06-18T12:03:29.4481947Z             },
2026-06-18T12:03:29.4482028Z             {
2026-06-18T12:03:29.4482138Z               "path": "crates/spt-live/src/psyche.rs",
2026-06-18T12:03:29.4482233Z               "line": 225
2026-06-18T12:03:29.4482310Z             },
2026-06-18T12:03:29.4482396Z             {
2026-06-18T12:03:29.4482505Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-18T12:03:29.4482604Z               "line": 106
2026-06-18T12:03:29.4482694Z             },
2026-06-18T12:03:29.4482780Z             {
2026-06-18T12:03:29.4482902Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-18T12:03:29.4482992Z               "line": 137
2026-06-18T12:03:29.4483088Z             },
2026-06-18T12:03:29.4483175Z             {
2026-06-18T12:03:29.4483288Z               "path": "crates/spt-live/src/pulse.rs",
2026-06-18T12:03:29.4483389Z               "line": 161
2026-06-18T12:03:29.4483479Z             }
2026-06-18T12:03:29.4483565Z           ]
2026-06-18T12:03:29.4483660Z         }
2026-06-18T12:03:29.4483756Z       }
2026-06-18T12:03:29.4483847Z     },
2026-06-18T12:03:29.4483941Z     {
2026-06-18T12:03:29.4484047Z       "id": "REQ-SEAM-RESUME",
2026-06-18T12:03:29.4484251Z       "title": "resume-session seam (fresh-with-preload / continue-existing)",
2026-06-18T12:03:29.4484352Z       "requiredStages": [
2026-06-18T12:03:29.4484438Z         "impl",
2026-06-18T12:03:29.4484538Z         "unit"
2026-06-18T12:03:29.4484629Z       ],
2026-06-18T12:03:29.4484725Z       "stages": {
2026-06-18T12:03:29.4484949Z         "doc": {
2026-06-18T12:03:29.4485039Z           "complete": false,
2026-06-18T12:03:29.4485137Z           "evidence": []
2026-06-18T12:03:29.4485223Z         },
2026-06-18T12:03:29.4485318Z         "impl": {
2026-06-18T12:03:29.4485417Z           "complete": true,
2026-06-18T12:03:29.4485506Z           "evidence": [
2026-06-18T12:03:29.4485593Z             {
2026-06-18T12:03:29.4485713Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.4485907Z               "line": 19
2026-06-18T12:03:29.4485999Z             }
2026-06-18T12:03:29.4486098Z           ]
2026-06-18T12:03:29.4486179Z         },
2026-06-18T12:03:29.4486275Z         "int": {
2026-06-18T12:03:29.4486370Z           "complete": false,
2026-06-18T12:03:29.4486469Z           "evidence": []
2026-06-18T12:03:29.4486562Z         },
2026-06-18T12:03:29.4486652Z         "unit": {
2026-06-18T12:03:29.4486756Z           "complete": true,
2026-06-18T12:03:29.4486842Z           "evidence": [
2026-06-18T12:03:29.4486948Z             {
2026-06-18T12:03:29.4487076Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.4487161Z               "line": 201
2026-06-18T12:03:29.4487253Z             },
2026-06-18T12:03:29.4487342Z             {
2026-06-18T12:03:29.4487476Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.4487563Z               "line": 223
2026-06-18T12:03:29.4487652Z             },
2026-06-18T12:03:29.4487748Z             {
2026-06-18T12:03:29.4487873Z               "path": "crates/spt-live/src/resume.rs",
2026-06-18T12:03:29.4487972Z               "line": 244
2026-06-18T12:03:29.4488057Z             }
2026-06-18T12:03:29.4488152Z           ]
2026-06-18T12:03:29.4488234Z         }
2026-06-18T12:03:29.4488329Z       }
2026-06-18T12:03:29.4488419Z     },
2026-06-18T12:03:29.4488505Z     {
2026-06-18T12:03:29.4488611Z       "id": "REQ-SEAM-SPAWN",
2026-06-18T12:03:29.4488715Z       "title": "spawn-session seam",
2026-06-18T12:03:29.4488826Z       "requiredStages": [
2026-06-18T12:03:29.4488911Z         "impl",
2026-06-18T12:03:29.4489082Z         "unit"
2026-06-18T12:03:29.4489169Z       ],
2026-06-18T12:03:29.4489258Z       "stages": {
2026-06-18T12:03:29.4489344Z         "doc": {
2026-06-18T12:03:29.4489440Z           "complete": false,
2026-06-18T12:03:29.4489545Z           "evidence": []
2026-06-18T12:03:29.4489630Z         },
2026-06-18T12:03:29.4489726Z         "impl": {
2026-06-18T12:03:29.4489822Z           "complete": true,
2026-06-18T12:03:29.4489930Z           "evidence": [
2026-06-18T12:03:29.4490012Z             {
2026-06-18T12:03:29.4490142Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4490240Z               "line": 20
2026-06-18T12:03:29.4490325Z             }
2026-06-18T12:03:29.4490406Z           ]
2026-06-18T12:03:29.4490492Z         },
2026-06-18T12:03:29.4490576Z         "int": {
2026-06-18T12:03:29.4490675Z           "complete": false,
2026-06-18T12:03:29.4490772Z           "evidence": []
2026-06-18T12:03:29.4490863Z         },
2026-06-18T12:03:29.4490948Z         "unit": {
2026-06-18T12:03:29.4491053Z           "complete": true,
2026-06-18T12:03:29.4491153Z           "evidence": [
2026-06-18T12:03:29.4491243Z             {
2026-06-18T12:03:29.4491373Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4491463Z               "line": 608
2026-06-18T12:03:29.4491558Z             },
2026-06-18T12:03:29.4491644Z             {
2026-06-18T12:03:29.4491778Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4491882Z               "line": 615
2026-06-18T12:03:29.4491963Z             },
2026-06-18T12:03:29.4492060Z             {
2026-06-18T12:03:29.4492183Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4492283Z               "line": 721
2026-06-18T12:03:29.4492375Z             },
2026-06-18T12:03:29.4492464Z             {
2026-06-18T12:03:29.4492593Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4492685Z               "line": 727
2026-06-18T12:03:29.4492889Z             },
2026-06-18T12:03:29.4492981Z             {
2026-06-18T12:03:29.4493107Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4493202Z               "line": 752
2026-06-18T12:03:29.4493293Z             },
2026-06-18T12:03:29.4493387Z             {
2026-06-18T12:03:29.4493505Z               "path": "crates/spt-runtime/src/runtime.rs",
2026-06-18T12:03:29.4493610Z               "line": 789
2026-06-18T12:03:29.4493796Z             }
2026-06-18T12:03:29.4493886Z           ]
2026-06-18T12:03:29.4493973Z         }
2026-06-18T12:03:29.4494059Z       }
2026-06-18T12:03:29.4494149Z     },
2026-06-18T12:03:29.4494230Z     {
2026-06-18T12:03:29.4494335Z       "id": "REQ-SEAM-UPDATE",
2026-06-18T12:03:29.4494511Z       "title": "Adapter-update avenue (file-pull / delegated command)",
2026-06-18T12:03:29.4494626Z       "requiredStages": [
2026-06-18T12:03:29.4494716Z         "impl",
2026-06-18T12:03:29.4494797Z         "unit"
2026-06-18T12:03:29.4494904Z       ],
2026-06-18T12:03:29.4494984Z       "stages": {
2026-06-18T12:03:29.4495083Z         "doc": {
2026-06-18T12:03:29.4495184Z           "complete": false,
2026-06-18T12:03:29.4495289Z           "evidence": []
2026-06-18T12:03:29.4495374Z         },
2026-06-18T12:03:29.4495470Z         "impl": {
2026-06-18T12:03:29.4495576Z           "complete": true,
2026-06-18T12:03:29.4495674Z           "evidence": [
2026-06-18T12:03:29.4495764Z             {
2026-06-18T12:03:29.4495917Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4496015Z               "line": 28
2026-06-18T12:03:29.4496114Z             },
2026-06-18T12:03:29.4496205Z             {
2026-06-18T12:03:29.4496344Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4496439Z               "line": 88
2026-06-18T12:03:29.4496530Z             }
2026-06-18T12:03:29.4496611Z           ]
2026-06-18T12:03:29.4496705Z         },
2026-06-18T12:03:29.4496797Z         "int": {
2026-06-18T12:03:29.4496907Z           "complete": false,
2026-06-18T12:03:29.4497002Z           "evidence": []
2026-06-18T12:03:29.4497087Z         },
2026-06-18T12:03:29.4497179Z         "unit": {
2026-06-18T12:03:29.4497278Z           "complete": true,
2026-06-18T12:03:29.4497368Z           "evidence": [
2026-06-18T12:03:29.4497460Z             {
2026-06-18T12:03:29.4497598Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4497717Z               "line": 326
2026-06-18T12:03:29.4497808Z             },
2026-06-18T12:03:29.4497889Z             {
2026-06-18T12:03:29.4498022Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4498123Z               "line": 337
2026-06-18T12:03:29.4498217Z             }
2026-06-18T12:03:29.4498299Z           ]
2026-06-18T12:03:29.4498395Z         }
2026-06-18T12:03:29.4498481Z       }
2026-06-18T12:03:29.4498565Z     },
2026-06-18T12:03:29.4498650Z     {
2026-06-18T12:03:29.4498746Z       "id": "REQ-SEC-1",
2026-06-18T12:03:29.4499227Z       "title": "Per-endpoint access whitelist: origin-node gate, stateful-firewall (reply/outbound exempt), node-now/user-later, outer gate before grants",
2026-06-18T12:03:29.4499327Z       "requiredStages": [
2026-06-18T12:03:29.4499424Z         "impl",
2026-06-18T12:03:29.4499510Z         "unit"
2026-06-18T12:03:29.4499594Z       ],
2026-06-18T12:03:29.4499686Z       "stages": {
2026-06-18T12:03:29.4499785Z         "doc": {
2026-06-18T12:03:29.4499899Z           "complete": false,
2026-06-18T12:03:29.4499991Z           "evidence": []
2026-06-18T12:03:29.4500087Z         },
2026-06-18T12:03:29.4500167Z         "impl": {
2026-06-18T12:03:29.4500267Z           "complete": true,
2026-06-18T12:03:29.4500363Z           "evidence": [
2026-06-18T12:03:29.4500462Z             {
2026-06-18T12:03:29.4500591Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.4500674Z               "line": 86
2026-06-18T12:03:29.4500763Z             },
2026-06-18T12:03:29.4500948Z             {
2026-06-18T12:03:29.4501075Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.4501174Z               "line": 116
2026-06-18T12:03:29.4501270Z             },
2026-06-18T12:03:29.4501366Z             {
2026-06-18T12:03:29.4501489Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.4501584Z               "line": 130
2026-06-18T12:03:29.4501666Z             },
2026-06-18T12:03:29.4501761Z             {
2026-06-18T12:03:29.4501986Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4502090Z               "line": 109
2026-06-18T12:03:29.4502185Z             },
2026-06-18T12:03:29.4502267Z             {
2026-06-18T12:03:29.4502396Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4502485Z               "line": 130
2026-06-18T12:03:29.4502582Z             },
2026-06-18T12:03:29.4502666Z             {
2026-06-18T12:03:29.4502795Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4502902Z               "line": 143
2026-06-18T12:03:29.4502986Z             },
2026-06-18T12:03:29.4503082Z             {
2026-06-18T12:03:29.4503207Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4503301Z               "line": 209
2026-06-18T12:03:29.4503396Z             },
2026-06-18T12:03:29.4503493Z             {
2026-06-18T12:03:29.4503607Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4503696Z               "line": 235
2026-06-18T12:03:29.4503805Z             },
2026-06-18T12:03:29.4503891Z             {
2026-06-18T12:03:29.4504013Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4504107Z               "line": 5134
2026-06-18T12:03:29.4504204Z             }
2026-06-18T12:03:29.4504299Z           ]
2026-06-18T12:03:29.4504385Z         },
2026-06-18T12:03:29.4504480Z         "int": {
2026-06-18T12:03:29.4504581Z           "complete": false,
2026-06-18T12:03:29.4504685Z           "evidence": []
2026-06-18T12:03:29.4504781Z         },
2026-06-18T12:03:29.4504872Z         "unit": {
2026-06-18T12:03:29.4504967Z           "complete": true,
2026-06-18T12:03:29.4505061Z           "evidence": [
2026-06-18T12:03:29.4505154Z             {
2026-06-18T12:03:29.4505277Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.4505381Z               "line": 142
2026-06-18T12:03:29.4505469Z             },
2026-06-18T12:03:29.4505558Z             {
2026-06-18T12:03:29.4505677Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.4505769Z               "line": 194
2026-06-18T12:03:29.4505868Z             },
2026-06-18T12:03:29.4505958Z             {
2026-06-18T12:03:29.4506083Z               "path": "crates/spt-daemon/src/access.rs",
2026-06-18T12:03:29.4506183Z               "line": 235
2026-06-18T12:03:29.4506263Z             },
2026-06-18T12:03:29.4506357Z             {
2026-06-18T12:03:29.4506477Z               "path": "crates/spt-daemon/tests/access.rs",
2026-06-18T12:03:29.4506575Z               "line": 140
2026-06-18T12:03:29.4506655Z             },
2026-06-18T12:03:29.4506742Z             {
2026-06-18T12:03:29.4506871Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4506965Z               "line": 247
2026-06-18T12:03:29.4507052Z             },
2026-06-18T12:03:29.4507138Z             {
2026-06-18T12:03:29.4507261Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4507347Z               "line": 277
2026-06-18T12:03:29.4507448Z             },
2026-06-18T12:03:29.4507548Z             {
2026-06-18T12:03:29.4507672Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4507772Z               "line": 310
2026-06-18T12:03:29.4507853Z             },
2026-06-18T12:03:29.4507943Z             {
2026-06-18T12:03:29.4508063Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4508163Z               "line": 329
2026-06-18T12:03:29.4508258Z             },
2026-06-18T12:03:29.4508340Z             {
2026-06-18T12:03:29.4508563Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4508665Z               "line": 362
2026-06-18T12:03:29.4508763Z             },
2026-06-18T12:03:29.4508840Z             {
2026-06-18T12:03:29.4509027Z               "path": "crates/spt-store/src/access.rs",
2026-06-18T12:03:29.4509130Z               "line": 386
2026-06-18T12:03:29.4509210Z             },
2026-06-18T12:03:29.4509306Z             {
2026-06-18T12:03:29.4509412Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4509617Z               "line": 8066
2026-06-18T12:03:29.4509698Z             }
2026-06-18T12:03:29.4509788Z           ]
2026-06-18T12:03:29.4509873Z         }
2026-06-18T12:03:29.4509965Z       }
2026-06-18T12:03:29.4510050Z     },
2026-06-18T12:03:29.4510126Z     {
2026-06-18T12:03:29.4510236Z       "id": "REQ-SEND-SPT-HOSTED",
2026-06-18T12:03:29.4514077Z       "title": "An inbound `spt send` is DELIVERED to an spt-hosted endpoint (brought up via `spt endpoint run` → `api bind`, broker holds its PTY, NO `api listen` relay). Today cmd_bind→establish_perch (api/startup.rs ~441) writes info.json + ready marker + controllable=Some(true) but registers NO message-listener / NO address, so deliver.rs resolve_address→None→spool (deliver.rs:132-140) and the message NEVER reaches the live PTY — the endpoint reads 'online' (ready marker) yet `spt send` silently SPOOLS ('online but not deliverable' lie). Per CONTEXT:187-188 the daemon owns the PTY and delivers, manifest-configurable per activity-state (direct PTY injection / relay / HTTP). FIX: route an inbound send for an spt-hosted target through the daemon → broker InputReq → session.write_input PTY-inject (broker.rs dispatch_input/write_input ~988-1022), the same path the brain uses; the live-delivery handshake must report Sent (not Queued) and stop the spool-only fallback for a broker-hosted, PTY-resident endpoint. Detection is local: controllable==Some(true) + spt-hosted state + resolve_address==None. = the spt-core HALF of the wall-b finding (perri owns the adapter half: bind-hook fired-zero-perch + the missing endpoint-run int test). (post-v0.10.0)",
2026-06-18T12:03:29.4514261Z       "requiredStages": [
2026-06-18T12:03:29.4514355Z         "impl",
2026-06-18T12:03:29.4514447Z         "unit",
2026-06-18T12:03:29.4514531Z         "int"
2026-06-18T12:03:29.4514620Z       ],
2026-06-18T12:03:29.4514716Z       "stages": {
2026-06-18T12:03:29.4514807Z         "doc": {
2026-06-18T12:03:29.4514916Z           "complete": false,
2026-06-18T12:03:29.4515036Z           "evidence": []
2026-06-18T12:03:29.4515131Z         },
2026-06-18T12:03:29.4515226Z         "impl": {
2026-06-18T12:03:29.4515326Z           "complete": true,
2026-06-18T12:03:29.4515422Z           "evidence": [
2026-06-18T12:03:29.4515513Z             {
2026-06-18T12:03:29.4515641Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.4515742Z               "line": 1018
2026-06-18T12:03:29.4515832Z             },
2026-06-18T12:03:29.4515918Z             {
2026-06-18T12:03:29.4516057Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4516151Z               "line": 1061
2026-06-18T12:03:29.4516247Z             },
2026-06-18T12:03:29.4516348Z             {
2026-06-18T12:03:29.4516461Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4516557Z               "line": 2721
2026-06-18T12:03:29.4516648Z             }
2026-06-18T12:03:29.4516738Z           ]
2026-06-18T12:03:29.4516828Z         },
2026-06-18T12:03:29.4516932Z         "int": {
2026-06-18T12:03:29.4517037Z           "complete": true,
2026-06-18T12:03:29.4517125Z           "evidence": [
2026-06-18T12:03:29.4517210Z             {
2026-06-18T12:03:29.4517340Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T12:03:29.4517445Z               "line": 187
2026-06-18T12:03:29.4517535Z             },
2026-06-18T12:03:29.4517636Z             {
2026-06-18T12:03:29.4517760Z               "path": "crates/spt-daemon/tests/broker.rs",
2026-06-18T12:03:29.4517854Z               "line": 503
2026-06-18T12:03:29.4518032Z             }
2026-06-18T12:03:29.4518117Z           ]
2026-06-18T12:03:29.4518203Z         },
2026-06-18T12:03:29.4518294Z         "unit": {
2026-06-18T12:03:29.4518398Z           "complete": true,
2026-06-18T12:03:29.4518493Z           "evidence": [
2026-06-18T12:03:29.4518576Z             {
2026-06-18T12:03:29.4518709Z               "path": "crates/spt-daemon/src/msg.rs",
2026-06-18T12:03:29.4518799Z               "line": 904
2026-06-18T12:03:29.4519032Z             },
2026-06-18T12:03:29.4519114Z             {
2026-06-18T12:03:29.4519230Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4519328Z               "line": 7325
2026-06-18T12:03:29.4519414Z             }
2026-06-18T12:03:29.4519515Z           ]
2026-06-18T12:03:29.4519601Z         }
2026-06-18T12:03:29.4519685Z       }
2026-06-18T12:03:29.4519775Z     },
2026-06-18T12:03:29.4519862Z     {
2026-06-18T12:03:29.4519958Z       "id": "REQ-SHELL-1",
2026-06-18T12:03:29.4520844Z       "title": "Shell hosting machinery: shell perch under the owner (type/owner/adapter_name/status/alias), broker-launched binary + api bind local-link handshake, the three channels (command durable, text+file durable + progress-queryable, sensory REST-only never spooled + dropped-unless-owner-live), owner exclusivity (CONTEXT Shell model)",
2026-06-18T12:03:29.4520958Z       "requiredStages": [
2026-06-18T12:03:29.4521048Z         "impl",
2026-06-18T12:03:29.4521150Z         "unit",
2026-06-18T12:03:29.4521235Z         "int"
2026-06-18T12:03:29.4521325Z       ],
2026-06-18T12:03:29.4521421Z       "stages": {
2026-06-18T12:03:29.4521507Z         "doc": {
2026-06-18T12:03:29.4521611Z           "complete": false,
2026-06-18T12:03:29.4521707Z           "evidence": []
2026-06-18T12:03:29.4521798Z         },
2026-06-18T12:03:29.4521892Z         "impl": {
2026-06-18T12:03:29.4521977Z           "complete": true,
2026-06-18T12:03:29.4522082Z           "evidence": [
2026-06-18T12:03:29.4522163Z             {
2026-06-18T12:03:29.4522299Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4522395Z               "line": 189
2026-06-18T12:03:29.4522486Z             },
2026-06-18T12:03:29.4522590Z             {
2026-06-18T12:03:29.4522704Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4522801Z               "line": 268
2026-06-18T12:03:29.4522881Z             },
2026-06-18T12:03:29.4522971Z             {
2026-06-18T12:03:29.4523101Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4523206Z               "line": 27
2026-06-18T12:03:29.4523300Z             },
2026-06-18T12:03:29.4523387Z             {
2026-06-18T12:03:29.4523516Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4523600Z               "line": 52
2026-06-18T12:03:29.4523697Z             },
2026-06-18T12:03:29.4523783Z             {
2026-06-18T12:03:29.4523911Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4524022Z               "line": 144
2026-06-18T12:03:29.4524112Z             },
2026-06-18T12:03:29.4524207Z             {
2026-06-18T12:03:29.4524318Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4524422Z               "line": 176
2026-06-18T12:03:29.4524507Z             },
2026-06-18T12:03:29.4524593Z             {
2026-06-18T12:03:29.4524718Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4527733Z               "line": 22
2026-06-18T12:03:29.4527862Z             },
2026-06-18T12:03:29.4527958Z             {
2026-06-18T12:03:29.4528104Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4528211Z               "line": 65
2026-06-18T12:03:29.4528301Z             },
2026-06-18T12:03:29.4528396Z             {
2026-06-18T12:03:29.4528535Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4528635Z               "line": 76
2026-06-18T12:03:29.4528720Z             },
2026-06-18T12:03:29.4528817Z             {
2026-06-18T12:03:29.4529174Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4529259Z               "line": 151
2026-06-18T12:03:29.4529354Z             },
2026-06-18T12:03:29.4529446Z             {
2026-06-18T12:03:29.4529569Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4529664Z               "line": 210
2026-06-18T12:03:29.4529751Z             },
2026-06-18T12:03:29.4529851Z             {
2026-06-18T12:03:29.4530075Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4530175Z               "line": 258
2026-06-18T12:03:29.4530260Z             },
2026-06-18T12:03:29.4530340Z             {
2026-06-18T12:03:29.4530470Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4530565Z               "line": 280
2026-06-18T12:03:29.4530645Z             },
2026-06-18T12:03:29.4530727Z             {
2026-06-18T12:03:29.4530851Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4530941Z               "line": 293
2026-06-18T12:03:29.4531032Z             },
2026-06-18T12:03:29.4531118Z             {
2026-06-18T12:03:29.4531246Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.4531347Z               "line": 217
2026-06-18T12:03:29.4531428Z             },
2026-06-18T12:03:29.4531518Z             {
2026-06-18T12:03:29.4531637Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.4531743Z               "line": 233
2026-06-18T12:03:29.4531833Z             },
2026-06-18T12:03:29.4531914Z             {
2026-06-18T12:03:29.4532053Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.4532143Z               "line": 41
2026-06-18T12:03:29.4532234Z             },
2026-06-18T12:03:29.4532310Z             {
2026-06-18T12:03:29.4532443Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.4532523Z               "line": 222
2026-06-18T12:03:29.4532623Z             },
2026-06-18T12:03:29.4532719Z             {
2026-06-18T12:03:29.4532850Z               "path": "crates/spt/src/api/delivery.rs",
2026-06-18T12:03:29.4532950Z               "line": 173
2026-06-18T12:03:29.4533037Z             },
2026-06-18T12:03:29.4533117Z             {
2026-06-18T12:03:29.4533241Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.4533337Z               "line": 354
2026-06-18T12:03:29.4533413Z             },
2026-06-18T12:03:29.4533503Z             {
2026-06-18T12:03:29.4533628Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.4533723Z               "line": 419
2026-06-18T12:03:29.4533799Z             },
2026-06-18T12:03:29.4533885Z             {
2026-06-18T12:03:29.4534009Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4534109Z               "line": 329
2026-06-18T12:03:29.4534195Z             },
2026-06-18T12:03:29.4534276Z             {
2026-06-18T12:03:29.4534381Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4534485Z               "line": 6159
2026-06-18T12:03:29.4534577Z             },
2026-06-18T12:03:29.4534667Z             {
2026-06-18T12:03:29.4534777Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4534868Z               "line": 6309
2026-06-18T12:03:29.4534954Z             },
2026-06-18T12:03:29.4535043Z             {
2026-06-18T12:03:29.4535144Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4535245Z               "line": 6485
2026-06-18T12:03:29.4535330Z             }
2026-06-18T12:03:29.4535414Z           ]
2026-06-18T12:03:29.4535500Z         },
2026-06-18T12:03:29.4535591Z         "int": {
2026-06-18T12:03:29.4535684Z           "complete": true,
2026-06-18T12:03:29.4535788Z           "evidence": [
2026-06-18T12:03:29.4535879Z             {
2026-06-18T12:03:29.4536004Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4536108Z               "line": 711
2026-06-18T12:03:29.4536195Z             },
2026-06-18T12:03:29.4536290Z             {
2026-06-18T12:03:29.4536553Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-18T12:03:29.4536652Z               "line": 8
2026-06-18T12:03:29.4536752Z             },
2026-06-18T12:03:29.4536838Z             {
2026-06-18T12:03:29.4536977Z               "path": "crates/spt-daemon/tests/shellchan.rs",
2026-06-18T12:03:29.4537072Z               "line": 49
2026-06-18T12:03:29.4537163Z             },
2026-06-18T12:03:29.4537243Z             {
2026-06-18T12:03:29.4537454Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4537558Z               "line": 777
2026-06-18T12:03:29.4537644Z             },
2026-06-18T12:03:29.4537725Z             {
2026-06-18T12:03:29.4537850Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4537943Z               "line": 1212
2026-06-18T12:03:29.4538028Z             },
2026-06-18T12:03:29.4538124Z             {
2026-06-18T12:03:29.4538250Z               "path": "crates/spt/tests/notify_shell_e2e.rs",
2026-06-18T12:03:29.4538355Z               "line": 17
2026-06-18T12:03:29.4538441Z             },
2026-06-18T12:03:29.4538528Z             {
2026-06-18T12:03:29.4538646Z               "path": "crates/spt/tests/shell_e2e.rs",
2026-06-18T12:03:29.4538732Z               "line": 14
2026-06-18T12:03:29.4538818Z             }
2026-06-18T12:03:29.4538908Z           ]
2026-06-18T12:03:29.4539057Z         },
2026-06-18T12:03:29.4539157Z         "unit": {
2026-06-18T12:03:29.4539270Z           "complete": true,
2026-06-18T12:03:29.4539367Z           "evidence": [
2026-06-18T12:03:29.4539448Z             {
2026-06-18T12:03:29.4539580Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4539672Z               "line": 246
2026-06-18T12:03:29.4539753Z             },
2026-06-18T12:03:29.4539844Z             {
2026-06-18T12:03:29.4539957Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4540054Z               "line": 279
2026-06-18T12:03:29.4540134Z             },
2026-06-18T12:03:29.4540229Z             {
2026-06-18T12:03:29.4540345Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4540430Z               "line": 319
2026-06-18T12:03:29.4540515Z             },
2026-06-18T12:03:29.4540602Z             {
2026-06-18T12:03:29.4540726Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4540820Z               "line": 598
2026-06-18T12:03:29.4540895Z             },
2026-06-18T12:03:29.4540996Z             {
2026-06-18T12:03:29.4541115Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4541215Z               "line": 671
2026-06-18T12:03:29.4541297Z             },
2026-06-18T12:03:29.4541387Z             {
2026-06-18T12:03:29.4541511Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4541602Z               "line": 815
2026-06-18T12:03:29.4541688Z             },
2026-06-18T12:03:29.4541769Z             {
2026-06-18T12:03:29.4541898Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.4541988Z               "line": 595
2026-06-18T12:03:29.4542074Z             },
2026-06-18T12:03:29.4542169Z             {
2026-06-18T12:03:29.4542294Z               "path": "crates/spt-store/src/shellinfo.rs",
2026-06-18T12:03:29.4542388Z               "line": 399
2026-06-18T12:03:29.4542469Z             },
2026-06-18T12:03:29.4542556Z             {
2026-06-18T12:03:29.4542656Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4542755Z               "line": 8746
2026-06-18T12:03:29.4542841Z             },
2026-06-18T12:03:29.4542929Z             {
2026-06-18T12:03:29.4543032Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4543121Z               "line": 9070
2026-06-18T12:03:29.4543217Z             },
2026-06-18T12:03:29.4543307Z             {
2026-06-18T12:03:29.4543415Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4543510Z               "line": 9487
2026-06-18T12:03:29.4543597Z             }
2026-06-18T12:03:29.4543796Z           ]
2026-06-18T12:03:29.4543878Z         }
2026-06-18T12:03:29.4543968Z       }
2026-06-18T12:03:29.4544054Z     },
2026-06-18T12:03:29.4544135Z     {
2026-06-18T12:03:29.4544231Z       "id": "REQ-SHELL-2",
2026-06-18T12:03:29.4545762Z       "title": "Shell sleep/wake: link-break always closes the binary (pre-close instruction + termination timeout), ephemeral teardown vs persistent offline/relink, wake_command wake-watcher (offline-only, exit-opcode supervision, exponential backoff + give-up), state-keyed wake resolution (dormant/suspended/active-elsewhere; no-reachable refuses — spawn-anywhere branch deferred), spt shutdown owner cascade + api owner-shutdown gated by can_shutdown (CONTEXT Shell sleep/wake)",
2026-06-18T12:03:29.4545969Z       "requiredStages": [
2026-06-18T12:03:29.4546079Z         "impl",
2026-06-18T12:03:29.4546165Z         "unit",
2026-06-18T12:03:29.4546263Z         "int"
2026-06-18T12:03:29.4546348Z       ],
2026-06-18T12:03:29.4546444Z       "stages": {
2026-06-18T12:03:29.4546536Z         "doc": {
2026-06-18T12:03:29.4546639Z           "complete": false,
2026-06-18T12:03:29.4546726Z           "evidence": []
2026-06-18T12:03:29.4546817Z         },
2026-06-18T12:03:29.4546911Z         "impl": {
2026-06-18T12:03:29.4547007Z           "complete": true,
2026-06-18T12:03:29.4547103Z           "evidence": [
2026-06-18T12:03:29.4547194Z             {
2026-06-18T12:03:29.4547331Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.4547442Z               "line": 217
2026-06-18T12:03:29.4547527Z             },
2026-06-18T12:03:29.4547612Z             {
2026-06-18T12:03:29.4547737Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4547836Z               "line": 403
2026-06-18T12:03:29.4547922Z             },
2026-06-18T12:03:29.4548014Z             {
2026-06-18T12:03:29.4548142Z               "path": "crates/spt-daemon/src/grants.rs",
2026-06-18T12:03:29.4548232Z               "line": 250
2026-06-18T12:03:29.4548315Z             },
2026-06-18T12:03:29.4548405Z             {
2026-06-18T12:03:29.4548541Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.4548637Z               "line": 403
2026-06-18T12:03:29.4548727Z             },
2026-06-18T12:03:29.4548816Z             {
2026-06-18T12:03:29.4549021Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4549112Z               "line": 30
2026-06-18T12:03:29.4549201Z             },
2026-06-18T12:03:29.4549302Z             {
2026-06-18T12:03:29.4549427Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4549530Z               "line": 409
2026-06-18T12:03:29.4549617Z             },
2026-06-18T12:03:29.4549707Z             {
2026-06-18T12:03:29.4549830Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4549927Z               "line": 445
2026-06-18T12:03:29.4550018Z             },
2026-06-18T12:03:29.4550094Z             {
2026-06-18T12:03:29.4550222Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4550323Z               "line": 660
2026-06-18T12:03:29.4550399Z             },
2026-06-18T12:03:29.4550489Z             {
2026-06-18T12:03:29.4550609Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.4550703Z               "line": 348
2026-06-18T12:03:29.4550784Z             },
2026-06-18T12:03:29.4550872Z             {
2026-06-18T12:03:29.4550999Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4551099Z               "line": 115
2026-06-18T12:03:29.4551196Z             },
2026-06-18T12:03:29.4551282Z             {
2026-06-18T12:03:29.4551408Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4551499Z               "line": 120
2026-06-18T12:03:29.4551585Z             },
2026-06-18T12:03:29.4551671Z             {
2026-06-18T12:03:29.4551794Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4551891Z               "line": 373
2026-06-18T12:03:29.4552090Z             },
2026-06-18T12:03:29.4552167Z             {
2026-06-18T12:03:29.4552291Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4552385Z               "line": 499
2026-06-18T12:03:29.4552467Z             },
2026-06-18T12:03:29.4552553Z             {
2026-06-18T12:03:29.4552686Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4552777Z               "line": 24
2026-06-18T12:03:29.4552963Z             },
2026-06-18T12:03:29.4553058Z             {
2026-06-18T12:03:29.4553179Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4553272Z               "line": 76
2026-06-18T12:03:29.4553358Z             },
2026-06-18T12:03:29.4553445Z             {
2026-06-18T12:03:29.4553568Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4553672Z               "line": 154
2026-06-18T12:03:29.4553772Z             },
2026-06-18T12:03:29.4553853Z             {
2026-06-18T12:03:29.4553985Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4554075Z               "line": 177
2026-06-18T12:03:29.4554167Z             },
2026-06-18T12:03:29.4554252Z             {
2026-06-18T12:03:29.4554376Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4554476Z               "line": 273
2026-06-18T12:03:29.4554552Z             },
2026-06-18T12:03:29.4554633Z             {
2026-06-18T12:03:29.4554754Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4554853Z               "line": 456
2026-06-18T12:03:29.4554938Z             },
2026-06-18T12:03:29.4555024Z             {
2026-06-18T12:03:29.4555158Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4555253Z               "line": 538
2026-06-18T12:03:29.4555339Z             },
2026-06-18T12:03:29.4555421Z             {
2026-06-18T12:03:29.4555548Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-18T12:03:29.4555639Z               "line": 27
2026-06-18T12:03:29.4555735Z             },
2026-06-18T12:03:29.4555825Z             {
2026-06-18T12:03:29.4555949Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-18T12:03:29.4556050Z               "line": 48
2026-06-18T12:03:29.4556139Z             },
2026-06-18T12:03:29.4556231Z             {
2026-06-18T12:03:29.4556356Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4556454Z               "line": 513
2026-06-18T12:03:29.4556553Z             },
2026-06-18T12:03:29.4556639Z             {
2026-06-18T12:03:29.4556743Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4556838Z               "line": 1809
2026-06-18T12:03:29.4556918Z             },
2026-06-18T12:03:29.4557005Z             {
2026-06-18T12:03:29.4557119Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4557218Z               "line": 6173
2026-06-18T12:03:29.4557296Z             },
2026-06-18T12:03:29.4557382Z             {
2026-06-18T12:03:29.4557491Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4557591Z               "line": 6234
2026-06-18T12:03:29.4557677Z             },
2026-06-18T12:03:29.4557763Z             {
2026-06-18T12:03:29.4557882Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4557973Z               "line": 6262
2026-06-18T12:03:29.4558058Z             },
2026-06-18T12:03:29.4558139Z             {
2026-06-18T12:03:29.4558250Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4558345Z               "line": 6316
2026-06-18T12:03:29.4558430Z             },
2026-06-18T12:03:29.4558511Z             {
2026-06-18T12:03:29.4558617Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4558702Z               "line": 6571
2026-06-18T12:03:29.4558788Z             },
2026-06-18T12:03:29.4558880Z             {
2026-06-18T12:03:29.4559050Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4559144Z               "line": 6631
2026-06-18T12:03:29.4559235Z             },
2026-06-18T12:03:29.4559471Z             {
2026-06-18T12:03:29.4559605Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4559700Z               "line": 298
2026-06-18T12:03:29.4559785Z             },
2026-06-18T12:03:29.4559872Z             {
2026-06-18T12:03:29.4560020Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4560110Z               "line": 339
2026-06-18T12:03:29.4560192Z             }
2026-06-18T12:03:29.4560381Z           ]
2026-06-18T12:03:29.4560463Z         },
2026-06-18T12:03:29.4560559Z         "int": {
2026-06-18T12:03:29.4560664Z           "complete": true,
2026-06-18T12:03:29.4560759Z           "evidence": [
2026-06-18T12:03:29.4560845Z             {
2026-06-18T12:03:29.4560973Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4561073Z               "line": 704
2026-06-18T12:03:29.4561160Z             },
2026-06-18T12:03:29.4561254Z             {
2026-06-18T12:03:29.4561378Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4561475Z               "line": 777
2026-06-18T12:03:29.4561555Z             },
2026-06-18T12:03:29.4561641Z             {
2026-06-18T12:03:29.4561771Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4561856Z               "line": 1212
2026-06-18T12:03:29.4561954Z             },
2026-06-18T12:03:29.4562039Z             {
2026-06-18T12:03:29.4562174Z               "path": "crates/spt/tests/shell_sleepwake_e2e.rs",
2026-06-18T12:03:29.4562278Z               "line": 18
2026-06-18T12:03:29.4562364Z             }
2026-06-18T12:03:29.4562456Z           ]
2026-06-18T12:03:29.4562542Z         },
2026-06-18T12:03:29.4562631Z         "unit": {
2026-06-18T12:03:29.4562732Z           "complete": true,
2026-06-18T12:03:29.4562827Z           "evidence": [
2026-06-18T12:03:29.4562931Z             {
2026-06-18T12:03:29.4563061Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4563165Z               "line": 744
2026-06-18T12:03:29.4563251Z             },
2026-06-18T12:03:29.4563332Z             {
2026-06-18T12:03:29.4563461Z               "path": "crates/spt-daemon/src/resting.rs",
2026-06-18T12:03:29.4563561Z               "line": 796
2026-06-18T12:03:29.4563652Z             },
2026-06-18T12:03:29.4563739Z             {
2026-06-18T12:03:29.4563876Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4563962Z               "line": 704
2026-06-18T12:03:29.4564059Z             },
2026-06-18T12:03:29.4564152Z             {
2026-06-18T12:03:29.4564270Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4564371Z               "line": 753
2026-06-18T12:03:29.4564460Z             },
2026-06-18T12:03:29.4564545Z             {
2026-06-18T12:03:29.4564669Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4564770Z               "line": 777
2026-06-18T12:03:29.4564854Z             },
2026-06-18T12:03:29.4564941Z             {
2026-06-18T12:03:29.4565074Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4565169Z               "line": 603
2026-06-18T12:03:29.4565265Z             },
2026-06-18T12:03:29.4565356Z             {
2026-06-18T12:03:29.4565479Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4565580Z               "line": 624
2026-06-18T12:03:29.4565671Z             },
2026-06-18T12:03:29.4565766Z             {
2026-06-18T12:03:29.4565889Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4565990Z               "line": 660
2026-06-18T12:03:29.4566090Z             },
2026-06-18T12:03:29.4566171Z             {
2026-06-18T12:03:29.4566301Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4566394Z               "line": 714
2026-06-18T12:03:29.4566485Z             },
2026-06-18T12:03:29.4566572Z             {
2026-06-18T12:03:29.4566690Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4566791Z               "line": 732
2026-06-18T12:03:29.4566963Z             },
2026-06-18T12:03:29.4567066Z             {
2026-06-18T12:03:29.4567190Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4567285Z               "line": 766
2026-06-18T12:03:29.4567379Z             },
2026-06-18T12:03:29.4567468Z             {
2026-06-18T12:03:29.4567594Z               "path": "crates/spt-daemon/src/shellwake.rs",
2026-06-18T12:03:29.4567684Z               "line": 841
2026-06-18T12:03:29.4567871Z             },
2026-06-18T12:03:29.4567956Z             {
2026-06-18T12:03:29.4568084Z               "path": "crates/spt-net/src/net/shelllink.rs",
2026-06-18T12:03:29.4568181Z               "line": 85
2026-06-18T12:03:29.4568280Z             },
2026-06-18T12:03:29.4568365Z             {
2026-06-18T12:03:29.4568471Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4568571Z               "line": 7866
2026-06-18T12:03:29.4568652Z             },
2026-06-18T12:03:29.4568737Z             {
2026-06-18T12:03:29.4568848Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4569019Z               "line": 8824
2026-06-18T12:03:29.4569101Z             },
2026-06-18T12:03:29.4569186Z             {
2026-06-18T12:03:29.4569290Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4569386Z               "line": 8894
2026-06-18T12:03:29.4569469Z             },
2026-06-18T12:03:29.4569553Z             {
2026-06-18T12:03:29.4569671Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4569776Z               "line": 8932
2026-06-18T12:03:29.4569861Z             }
2026-06-18T12:03:29.4569946Z           ]
2026-06-18T12:03:29.4570026Z         }
2026-06-18T12:03:29.4570113Z       }
2026-06-18T12:03:29.4570199Z     },
2026-06-18T12:03:29.4570284Z     {
2026-06-18T12:03:29.4570393Z       "id": "REQ-SHELL-3",
2026-06-18T12:03:29.4572248Z       "title": "Drive channel (owner->shell, REST-only, never-spooled, latest-wins): the owner->shell mirror of sensory for continuous real-time control (scroll/crank/stick/avatar) — a [shell.drive] manifest vocab + EVENT_TYPE_DRIVE frame, delivered to the ONLINE binary only via a single live slot (a new frame supersedes an undelivered one — no spool, no queue, no replay on relink), dropped-with-diagnostic if the shell is offline; cross-node rides the ephemeral link (REST class), never the durable shell spool. Commands = discrete+durable; drive = continuous+ephemeral (CONTEXT:260, minted 2026-06-11 Gateway grill).",
2026-06-18T12:03:29.4572388Z       "requiredStages": [
2026-06-18T12:03:29.4572481Z         "impl",
2026-06-18T12:03:29.4572571Z         "unit",
2026-06-18T12:03:29.4572662Z         "int"
2026-06-18T12:03:29.4572749Z       ],
2026-06-18T12:03:29.4572848Z       "stages": {
2026-06-18T12:03:29.4572933Z         "doc": {
2026-06-18T12:03:29.4573035Z           "complete": false,
2026-06-18T12:03:29.4573139Z           "evidence": []
2026-06-18T12:03:29.4573220Z         },
2026-06-18T12:03:29.4573311Z         "impl": {
2026-06-18T12:03:29.4573431Z           "complete": true,
2026-06-18T12:03:29.4573529Z           "evidence": [
2026-06-18T12:03:29.4573617Z             {
2026-06-18T12:03:29.4573759Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.4573864Z               "line": 224
2026-06-18T12:03:29.4573950Z             },
2026-06-18T12:03:29.4574045Z             {
2026-06-18T12:03:29.4574173Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4574280Z               "line": 36
2026-06-18T12:03:29.4574369Z             },
2026-06-18T12:03:29.4574455Z             {
2026-06-18T12:03:29.4574575Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4574661Z               "line": 137
2026-06-18T12:03:29.4574754Z             },
2026-06-18T12:03:29.4574844Z             {
2026-06-18T12:03:29.4574960Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4575048Z               "line": 153
2026-06-18T12:03:29.4575138Z             },
2026-06-18T12:03:29.4575335Z             {
2026-06-18T12:03:29.4575448Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4575548Z               "line": 165
2026-06-18T12:03:29.4575634Z             },
2026-06-18T12:03:29.4575724Z             {
2026-06-18T12:03:29.4575849Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4575939Z               "line": 242
2026-06-18T12:03:29.4576025Z             },
2026-06-18T12:03:29.4576111Z             {
2026-06-18T12:03:29.4576340Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4576426Z               "line": 267
2026-06-18T12:03:29.4576517Z             },
2026-06-18T12:03:29.4576611Z             {
2026-06-18T12:03:29.4576731Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4576832Z               "line": 293
2026-06-18T12:03:29.4576921Z             },
2026-06-18T12:03:29.4577012Z             {
2026-06-18T12:03:29.4577132Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T12:03:29.4577232Z               "line": 51
2026-06-18T12:03:29.4577322Z             },
2026-06-18T12:03:29.4577409Z             {
2026-06-18T12:03:29.4577537Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4577622Z               "line": 333
2026-06-18T12:03:29.4577716Z             },
2026-06-18T12:03:29.4577798Z             {
2026-06-18T12:03:29.4577920Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4578028Z               "line": 373
2026-06-18T12:03:29.4578115Z             },
2026-06-18T12:03:29.4578202Z             {
2026-06-18T12:03:29.4578320Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4578421Z               "line": 602
2026-06-18T12:03:29.4578497Z             },
2026-06-18T12:03:29.4578582Z             {
2026-06-18T12:03:29.4578716Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4578807Z               "line": 132
2026-06-18T12:03:29.4578906Z             },
2026-06-18T12:03:29.4579070Z             {
2026-06-18T12:03:29.4579198Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4579283Z               "line": 447
2026-06-18T12:03:29.4579370Z             },
2026-06-18T12:03:29.4579465Z             {
2026-06-18T12:03:29.4579588Z               "path": "crates/spt-proto/src/event.rs",
2026-06-18T12:03:29.4579690Z               "line": 74
2026-06-18T12:03:29.4579775Z             },
2026-06-18T12:03:29.4579874Z             {
2026-06-18T12:03:29.4579995Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4580095Z               "line": 561
2026-06-18T12:03:29.4580189Z             },
2026-06-18T12:03:29.4580278Z             {
2026-06-18T12:03:29.4580407Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4580501Z               "line": 392
2026-06-18T12:03:29.4580586Z             },
2026-06-18T12:03:29.4580673Z             {
2026-06-18T12:03:29.4580787Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4580891Z               "line": 6357
2026-06-18T12:03:29.4580983Z             }
2026-06-18T12:03:29.4581078Z           ]
2026-06-18T12:03:29.4581158Z         },
2026-06-18T12:03:29.4581254Z         "int": {
2026-06-18T12:03:29.4581345Z           "complete": true,
2026-06-18T12:03:29.4581445Z           "evidence": [
2026-06-18T12:03:29.4581539Z             {
2026-06-18T12:03:29.4581665Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4581759Z               "line": 1261
2026-06-18T12:03:29.4581840Z             },
2026-06-18T12:03:29.4581937Z             {
2026-06-18T12:03:29.4582055Z               "path": "crates/spt/tests/drive_e2e.rs",
2026-06-18T12:03:29.4582146Z               "line": 17
2026-06-18T12:03:29.4582242Z             }
2026-06-18T12:03:29.4582332Z           ]
2026-06-18T12:03:29.4582427Z         },
2026-06-18T12:03:29.4582523Z         "unit": {
2026-06-18T12:03:29.4582628Z           "complete": true,
2026-06-18T12:03:29.4582732Z           "evidence": [
2026-06-18T12:03:29.4582924Z             {
2026-06-18T12:03:29.4583056Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4583150Z               "line": 311
2026-06-18T12:03:29.4583242Z             },
2026-06-18T12:03:29.4583328Z             {
2026-06-18T12:03:29.4583455Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4583552Z               "line": 325
2026-06-18T12:03:29.4583638Z             },
2026-06-18T12:03:29.4583833Z             {
2026-06-18T12:03:29.4583957Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4584047Z               "line": 343
2026-06-18T12:03:29.4584133Z             },
2026-06-18T12:03:29.4584229Z             {
2026-06-18T12:03:29.4584357Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4584453Z               "line": 364
2026-06-18T12:03:29.4584549Z             },
2026-06-18T12:03:29.4584638Z             {
2026-06-18T12:03:29.4584768Z               "path": "crates/spt-daemon/src/drivehub.rs",
2026-06-18T12:03:29.4584868Z               "line": 376
2026-06-18T12:03:29.4584958Z             },
2026-06-18T12:03:29.4585048Z             {
2026-06-18T12:03:29.4585174Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4585277Z               "line": 897
2026-06-18T12:03:29.4585367Z             },
2026-06-18T12:03:29.4585481Z             {
2026-06-18T12:03:29.4585613Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4585713Z               "line": 957
2026-06-18T12:03:29.4585813Z             },
2026-06-18T12:03:29.4585928Z             {
2026-06-18T12:03:29.4586061Z               "path": "crates/spt-daemon/src/shellchan.rs",
2026-06-18T12:03:29.4586157Z               "line": 338
2026-06-18T12:03:29.4586252Z             },
2026-06-18T12:03:29.4586337Z             {
2026-06-18T12:03:29.4586458Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.4586557Z               "line": 769
2026-06-18T12:03:29.4586652Z             },
2026-06-18T12:03:29.4586739Z             {
2026-06-18T12:03:29.4586848Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4586952Z               "line": 8606
2026-06-18T12:03:29.4587034Z             }
2026-06-18T12:03:29.4587125Z           ]
2026-06-18T12:03:29.4587211Z         }
2026-06-18T12:03:29.4587296Z       }
2026-06-18T12:03:29.4587392Z     },
2026-06-18T12:03:29.4587468Z     {
2026-06-18T12:03:29.4587572Z       "id": "REQ-SHELL-4",
2026-06-18T12:03:29.4589467Z       "title": "Shell tunnel (reliable-ordered opaque byte stream): an owner<->shell link may hold a long-lived, reliable-ordered, link-bound QUIC stream pair carrying opaque wire protocol traffic the channel taxonomy must NOT reinterpret (first consumer usbip URB) — manifest opt-in, not enveloped, not MAC-framed, not spooled; the link lifecycle governs it (a link-break closes the tunnel). Reliable-ordered ⇒ congestion surfaces as lag never loss ⇒ acceptable only on-LAN: the on-LAN posture is documented and the tunnel is NOT proven cross-WAN (CONTEXT:262, minted 2026-06-11 Gateway grill; doyle gate C2).",
2026-06-18T12:03:29.4589567Z       "requiredStages": [
2026-06-18T12:03:29.4589663Z         "doc",
2026-06-18T12:03:29.4589758Z         "impl",
2026-06-18T12:03:29.4589853Z         "unit",
2026-06-18T12:03:29.4589945Z         "int"
2026-06-18T12:03:29.4590034Z       ],
2026-06-18T12:03:29.4590124Z       "stages": {
2026-06-18T12:03:29.4590211Z         "doc": {
2026-06-18T12:03:29.4590317Z           "complete": true,
2026-06-18T12:03:29.4590420Z           "evidence": [
2026-06-18T12:03:29.4590511Z             {
2026-06-18T12:03:29.4590618Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4590701Z               "line": 281
2026-06-18T12:03:29.4590791Z             },
2026-06-18T12:03:29.4590877Z             {
2026-06-18T12:03:29.4591118Z               "path": "docs/adr/0020-event-envelope-sole-arriving-format-reply-to-removed.md",
2026-06-18T12:03:29.4591213Z               "line": 88
2026-06-18T12:03:29.4591428Z             }
2026-06-18T12:03:29.4591523Z           ]
2026-06-18T12:03:29.4591605Z         },
2026-06-18T12:03:29.4591690Z         "impl": {
2026-06-18T12:03:29.4591790Z           "complete": true,
2026-06-18T12:03:29.4591882Z           "evidence": [
2026-06-18T12:03:29.4591972Z             {
2026-06-18T12:03:29.4592104Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.4592211Z               "line": 238
2026-06-18T12:03:29.4592463Z             },
2026-06-18T12:03:29.4592558Z             {
2026-06-18T12:03:29.4592677Z               "path": "crates/spt-daemon/src/endpoint.rs",
2026-06-18T12:03:29.4592768Z               "line": 61
2026-06-18T12:03:29.4592850Z             },
2026-06-18T12:03:29.4592944Z             {
2026-06-18T12:03:29.4593073Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4593156Z               "line": 218
2026-06-18T12:03:29.4593249Z             },
2026-06-18T12:03:29.4593326Z             {
2026-06-18T12:03:29.4593461Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4593545Z               "line": 245
2026-06-18T12:03:29.4593635Z             },
2026-06-18T12:03:29.4593720Z             {
2026-06-18T12:03:29.4593845Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4593950Z               "line": 566
2026-06-18T12:03:29.4594030Z             },
2026-06-18T12:03:29.4594112Z             {
2026-06-18T12:03:29.4594245Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4594349Z               "line": 1141
2026-06-18T12:03:29.4594437Z             },
2026-06-18T12:03:29.4594517Z             {
2026-06-18T12:03:29.4594640Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4594732Z               "line": 1153
2026-06-18T12:03:29.4594813Z             },
2026-06-18T12:03:29.4594899Z             {
2026-06-18T12:03:29.4595027Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4595128Z               "line": 1194
2026-06-18T12:03:29.4595213Z             },
2026-06-18T12:03:29.4595308Z             {
2026-06-18T12:03:29.4595433Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4595527Z               "line": 455
2026-06-18T12:03:29.4595613Z             },
2026-06-18T12:03:29.4595696Z             {
2026-06-18T12:03:29.4595823Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4595908Z               "line": 44
2026-06-18T12:03:29.4596013Z             },
2026-06-18T12:03:29.4596089Z             {
2026-06-18T12:03:29.4596220Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4596321Z               "line": 208
2026-06-18T12:03:29.4596407Z             },
2026-06-18T12:03:29.4596497Z             {
2026-06-18T12:03:29.4596621Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4596717Z               "line": 227
2026-06-18T12:03:29.4596807Z             },
2026-06-18T12:03:29.4596902Z             {
2026-06-18T12:03:29.4597042Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4597136Z               "line": 253
2026-06-18T12:03:29.4597231Z             },
2026-06-18T12:03:29.4597318Z             {
2026-06-18T12:03:29.4597451Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4597546Z               "line": 272
2026-06-18T12:03:29.4597642Z             },
2026-06-18T12:03:29.4597737Z             {
2026-06-18T12:03:29.4597865Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4597967Z               "line": 392
2026-06-18T12:03:29.4598056Z             },
2026-06-18T12:03:29.4598142Z             {
2026-06-18T12:03:29.4598267Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4598362Z               "line": 421
2026-06-18T12:03:29.4598452Z             },
2026-06-18T12:03:29.4598539Z             {
2026-06-18T12:03:29.4598667Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4598861Z               "line": 439
2026-06-18T12:03:29.4599026Z             },
2026-06-18T12:03:29.4599106Z             {
2026-06-18T12:03:29.4599221Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4602241Z               "line": 458
2026-06-18T12:03:29.4602350Z             },
2026-06-18T12:03:29.4602447Z             {
2026-06-18T12:03:29.4602589Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4602837Z               "line": 486
2026-06-18T12:03:29.4602927Z             },
2026-06-18T12:03:29.4603018Z             {
2026-06-18T12:03:29.4603156Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4603251Z               "line": 580
2026-06-18T12:03:29.4603338Z             },
2026-06-18T12:03:29.4603425Z             {
2026-06-18T12:03:29.4603562Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4603658Z               "line": 785
2026-06-18T12:03:29.4603740Z             },
2026-06-18T12:03:29.4603838Z             {
2026-06-18T12:03:29.4603968Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4604064Z               "line": 431
2026-06-18T12:03:29.4604147Z             },
2026-06-18T12:03:29.4604233Z             {
2026-06-18T12:03:29.4604338Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4604430Z               "line": 6413
2026-06-18T12:03:29.4604524Z             }
2026-06-18T12:03:29.4604600Z           ]
2026-06-18T12:03:29.4604701Z         },
2026-06-18T12:03:29.4604787Z         "int": {
2026-06-18T12:03:29.4604891Z           "complete": true,
2026-06-18T12:03:29.4604992Z           "evidence": [
2026-06-18T12:03:29.4605073Z             {
2026-06-18T12:03:29.4605201Z               "path": "crates/spt/tests/tunnel_e2e.rs",
2026-06-18T12:03:29.4605297Z               "line": 18
2026-06-18T12:03:29.4605373Z             }
2026-06-18T12:03:29.4605459Z           ]
2026-06-18T12:03:29.4605539Z         },
2026-06-18T12:03:29.4605627Z         "unit": {
2026-06-18T12:03:29.4605730Z           "complete": true,
2026-06-18T12:03:29.4605830Z           "evidence": [
2026-06-18T12:03:29.4605912Z             {
2026-06-18T12:03:29.4606040Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4606131Z               "line": 1391
2026-06-18T12:03:29.4606227Z             },
2026-06-18T12:03:29.4606322Z             {
2026-06-18T12:03:29.4606445Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4606554Z               "line": 1420
2026-06-18T12:03:29.4606640Z             },
2026-06-18T12:03:29.4606733Z             {
2026-06-18T12:03:29.4606861Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4606963Z               "line": 504
2026-06-18T12:03:29.4607067Z             },
2026-06-18T12:03:29.4607157Z             {
2026-06-18T12:03:29.4607292Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4607386Z               "line": 514
2026-06-18T12:03:29.4607476Z             },
2026-06-18T12:03:29.4607563Z             {
2026-06-18T12:03:29.4607696Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4607796Z               "line": 531
2026-06-18T12:03:29.4607878Z             },
2026-06-18T12:03:29.4607973Z             {
2026-06-18T12:03:29.4608091Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4608188Z               "line": 543
2026-06-18T12:03:29.4608278Z             },
2026-06-18T12:03:29.4608364Z             {
2026-06-18T12:03:29.4608494Z               "path": "crates/spt-daemon/src/tunnelhub.rs",
2026-06-18T12:03:29.4608583Z               "line": 555
2026-06-18T12:03:29.4608688Z             },
2026-06-18T12:03:29.4608774Z             {
2026-06-18T12:03:29.4608903Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4609094Z               "line": 1086
2026-06-18T12:03:29.4609175Z             },
2026-06-18T12:03:29.4609260Z             {
2026-06-18T12:03:29.4609383Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.4609591Z               "line": 776
2026-06-18T12:03:29.4609676Z             }
2026-06-18T12:03:29.4609762Z           ]
2026-06-18T12:03:29.4609844Z         }
2026-06-18T12:03:29.4609929Z       }
2026-06-18T12:03:29.4610014Z     },
2026-06-18T12:03:29.4610097Z     {
2026-06-18T12:03:29.4610201Z       "id": "REQ-SHELL-5",
2026-06-18T12:03:29.4611493Z       "title": "Shell ownership is owner-type-agnostic: any non-Shell endpoint type may own/spawn/drive/command/link a shell (Gateway the named first) — control-exclusivity keys on the owner endpoint_id, NEVER on the owner's endpoint type. No ownership path (mint, launch, owner-from-link, cmd, drive, tunnel, sleep/wake, owner-shutdown) inspects the owner's type (CONTEXT:264, ratified 2026-06-11 Gateway grill).",
2026-06-18T12:03:29.4611699Z       "requiredStages": [
2026-06-18T12:03:29.4611794Z         "doc",
2026-06-18T12:03:29.4611873Z         "impl",
2026-06-18T12:03:29.4611968Z         "unit",
2026-06-18T12:03:29.4612059Z         "int"
2026-06-18T12:03:29.4612153Z       ],
2026-06-18T12:03:29.4612252Z       "stages": {
2026-06-18T12:03:29.4612325Z         "doc": {
2026-06-18T12:03:29.4612430Z           "complete": true,
2026-06-18T12:03:29.4612529Z           "evidence": [
2026-06-18T12:03:29.4612615Z             {
2026-06-18T12:03:29.4612721Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4612820Z               "line": 284
2026-06-18T12:03:29.4612901Z             }
2026-06-18T12:03:29.4612997Z           ]
2026-06-18T12:03:29.4613087Z         },
2026-06-18T12:03:29.4613172Z         "impl": {
2026-06-18T12:03:29.4613269Z           "complete": true,
2026-06-18T12:03:29.4613360Z           "evidence": [
2026-06-18T12:03:29.4613450Z             {
2026-06-18T12:03:29.4613593Z               "path": "crates/spt-daemon/src/shellhost.rs",
2026-06-18T12:03:29.4613684Z               "line": 259
2026-06-18T12:03:29.4613774Z             }
2026-06-18T12:03:29.4613860Z           ]
2026-06-18T12:03:29.4613946Z         },
2026-06-18T12:03:29.4614041Z         "int": {
2026-06-18T12:03:29.4614140Z           "complete": true,
2026-06-18T12:03:29.4614228Z           "evidence": [
2026-06-18T12:03:29.4614309Z             {
2026-06-18T12:03:29.4614446Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4614533Z               "line": 826
2026-06-18T12:03:29.4614619Z             },
2026-06-18T12:03:29.4614703Z             {
2026-06-18T12:03:29.4614830Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4614937Z               "line": 1289
2026-06-18T12:03:29.4615018Z             },
2026-06-18T12:03:29.4615108Z             {
2026-06-18T12:03:29.4615257Z               "path": "crates/spt/tests/gateway_owner_shell_e2e.rs",
2026-06-18T12:03:29.4615356Z               "line": 23
2026-06-18T12:03:29.4615441Z             }
2026-06-18T12:03:29.4615528Z           ]
2026-06-18T12:03:29.4615613Z         },
2026-06-18T12:03:29.4615694Z         "unit": {
2026-06-18T12:03:29.4615794Z           "complete": true,
2026-06-18T12:03:29.4615886Z           "evidence": [
2026-06-18T12:03:29.4615985Z             {
2026-06-18T12:03:29.4616113Z               "path": "crates/spt-daemon/src/linkhost.rs",
2026-06-18T12:03:29.4616211Z               "line": 803
2026-06-18T12:03:29.4616305Z             }
2026-06-18T12:03:29.4616390Z           ]
2026-06-18T12:03:29.4616482Z         }
2026-06-18T12:03:29.4616567Z       }
2026-06-18T12:03:29.4616648Z     },
2026-06-18T12:03:29.4616734Z     {
2026-06-18T12:03:29.4616831Z       "id": "REQ-START-1",
2026-06-18T12:03:29.4617042Z       "title": "Adapters never resolve SPT_HOME; binary on PATH; api bridging only",
2026-06-18T12:03:29.4617148Z       "requiredStages": [
2026-06-18T12:03:29.4617246Z         "impl",
2026-06-18T12:03:29.4617327Z         "unit"
2026-06-18T12:03:29.4617422Z       ],
2026-06-18T12:03:29.4617508Z       "stages": {
2026-06-18T12:03:29.4617608Z         "doc": {
2026-06-18T12:03:29.4617707Z           "complete": false,
2026-06-18T12:03:29.4617804Z           "evidence": []
2026-06-18T12:03:29.4617984Z         },
2026-06-18T12:03:29.4618075Z         "impl": {
2026-06-18T12:03:29.4618180Z           "complete": true,
2026-06-18T12:03:29.4618270Z           "evidence": [
2026-06-18T12:03:29.4618366Z             {
2026-06-18T12:03:29.4618485Z               "path": "crates/spt-store/src/seed.rs",
2026-06-18T12:03:29.4618585Z               "line": 16
2026-06-18T12:03:29.4618681Z             }
2026-06-18T12:03:29.4618833Z           ]
2026-06-18T12:03:29.4618929Z         },
2026-06-18T12:03:29.4619096Z         "int": {
2026-06-18T12:03:29.4619200Z           "complete": false,
2026-06-18T12:03:29.4619296Z           "evidence": []
2026-06-18T12:03:29.4619378Z         },
2026-06-18T12:03:29.4619463Z         "unit": {
2026-06-18T12:03:29.4619568Z           "complete": true,
2026-06-18T12:03:29.4619664Z           "evidence": [
2026-06-18T12:03:29.4619750Z             {
2026-06-18T12:03:29.4619872Z               "path": "crates/spt-store/src/seed.rs",
2026-06-18T12:03:29.4619962Z               "line": 48
2026-06-18T12:03:29.4620053Z             },
2026-06-18T12:03:29.4620137Z             {
2026-06-18T12:03:29.4620255Z               "path": "crates/spt-store/src/seed.rs",
2026-06-18T12:03:29.4620356Z               "line": 63
2026-06-18T12:03:29.4620452Z             }
2026-06-18T12:03:29.4620541Z           ]
2026-06-18T12:03:29.4620627Z         }
2026-06-18T12:03:29.4620719Z       }
2026-06-18T12:03:29.4620809Z     },
2026-06-18T12:03:29.4620903Z     {
2026-06-18T12:03:29.4621005Z       "id": "REQ-START-2",
2026-06-18T12:03:29.4621147Z       "title": "Harness-hosted startup: api seed then listen",
2026-06-18T12:03:29.4621248Z       "requiredStages": [
2026-06-18T12:03:29.4621339Z         "impl",
2026-06-18T12:03:29.4621428Z         "unit",
2026-06-18T12:03:29.4621519Z         "int"
2026-06-18T12:03:29.4621606Z       ],
2026-06-18T12:03:29.4621701Z       "stages": {
2026-06-18T12:03:29.4621781Z         "doc": {
2026-06-18T12:03:29.4621887Z           "complete": false,
2026-06-18T12:03:29.4621992Z           "evidence": []
2026-06-18T12:03:29.4622082Z         },
2026-06-18T12:03:29.4622167Z         "impl": {
2026-06-18T12:03:29.4622265Z           "complete": true,
2026-06-18T12:03:29.4622359Z           "evidence": [
2026-06-18T12:03:29.4622453Z             {
2026-06-18T12:03:29.4622582Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4622676Z               "line": 16
2026-06-18T12:03:29.4622756Z             },
2026-06-18T12:03:29.4622855Z             {
2026-06-18T12:03:29.4622966Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4623056Z               "line": 115
2026-06-18T12:03:29.4623141Z             },
2026-06-18T12:03:29.4623223Z             {
2026-06-18T12:03:29.4623348Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4623442Z               "line": 276
2026-06-18T12:03:29.4623529Z             }
2026-06-18T12:03:29.4623624Z           ]
2026-06-18T12:03:29.4623710Z         },
2026-06-18T12:03:29.4623805Z         "int": {
2026-06-18T12:03:29.4623906Z           "complete": true,
2026-06-18T12:03:29.4624005Z           "evidence": [
2026-06-18T12:03:29.4624090Z             {
2026-06-18T12:03:29.4624216Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:29.4624310Z               "line": 186
2026-06-18T12:03:29.4624405Z             }
2026-06-18T12:03:29.4624488Z           ]
2026-06-18T12:03:29.4624578Z         },
2026-06-18T12:03:29.4624668Z         "unit": {
2026-06-18T12:03:29.4624768Z           "complete": true,
2026-06-18T12:03:29.4624869Z           "evidence": [
2026-06-18T12:03:29.4624953Z             {
2026-06-18T12:03:29.4625074Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4625165Z               "line": 559
2026-06-18T12:03:29.4625250Z             },
2026-06-18T12:03:29.4625339Z             {
2026-06-18T12:03:29.4625449Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4625540Z               "line": 592
2026-06-18T12:03:29.4625734Z             }
2026-06-18T12:03:29.4625822Z           ]
2026-06-18T12:03:29.4625903Z         }
2026-06-18T12:03:29.4626001Z       }
2026-06-18T12:03:29.4626083Z     },
2026-06-18T12:03:29.4626169Z     {
2026-06-18T12:03:29.4626273Z       "id": "REQ-START-3",
2026-06-18T12:03:29.4626456Z       "title": "spt-hosted startup: spawn-session then api bind (no file)",
2026-06-18T12:03:29.4626550Z       "requiredStages": [
2026-06-18T12:03:29.4626626Z         "impl",
2026-06-18T12:03:29.4626818Z         "unit",
2026-06-18T12:03:29.4626908Z         "int"
2026-06-18T12:03:29.4626998Z       ],
2026-06-18T12:03:29.4627095Z       "stages": {
2026-06-18T12:03:29.4627184Z         "doc": {
2026-06-18T12:03:29.4627284Z           "complete": false,
2026-06-18T12:03:29.4627371Z           "evidence": []
2026-06-18T12:03:29.4627452Z         },
2026-06-18T12:03:29.4627541Z         "impl": {
2026-06-18T12:03:29.4627636Z           "complete": true,
2026-06-18T12:03:29.4627732Z           "evidence": [
2026-06-18T12:03:29.4627811Z             {
2026-06-18T12:03:29.4627939Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.4628020Z               "line": 23
2026-06-18T12:03:29.4628112Z             },
2026-06-18T12:03:29.4628197Z             {
2026-06-18T12:03:29.4628325Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.4628421Z               "line": 205
2026-06-18T12:03:29.4628506Z             },
2026-06-18T12:03:29.4628596Z             {
2026-06-18T12:03:29.4628712Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.4628812Z               "line": 221
2026-06-18T12:03:29.4628902Z             },
2026-06-18T12:03:29.4629055Z             {
2026-06-18T12:03:29.4629174Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4629270Z               "line": 17
2026-06-18T12:03:29.4629351Z             },
2026-06-18T12:03:29.4629437Z             {
2026-06-18T12:03:29.4629560Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4629666Z               "line": 35
2026-06-18T12:03:29.4629751Z             },
2026-06-18T12:03:29.4629842Z             {
2026-06-18T12:03:29.4629958Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4630056Z               "line": 116
2026-06-18T12:03:29.4630137Z             }
2026-06-18T12:03:29.4630220Z           ]
2026-06-18T12:03:29.4630305Z         },
2026-06-18T12:03:29.4630389Z         "int": {
2026-06-18T12:03:29.4630479Z           "complete": true,
2026-06-18T12:03:29.4630575Z           "evidence": [
2026-06-18T12:03:29.4630664Z             {
2026-06-18T12:03:29.4630782Z               "path": "crates/spt/tests/contract_e2e.rs",
2026-06-18T12:03:29.4630873Z               "line": 488
2026-06-18T12:03:29.4630960Z             }
2026-06-18T12:03:29.4631049Z           ]
2026-06-18T12:03:29.4631139Z         },
2026-06-18T12:03:29.4631217Z         "unit": {
2026-06-18T12:03:29.4631322Z           "complete": true,
2026-06-18T12:03:29.4631416Z           "evidence": [
2026-06-18T12:03:29.4631503Z             {
2026-06-18T12:03:29.4631627Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.4631712Z               "line": 381
2026-06-18T12:03:29.4631798Z             },
2026-06-18T12:03:29.4631885Z             {
2026-06-18T12:03:29.4632003Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.4632089Z               "line": 402
2026-06-18T12:03:29.4632186Z             },
2026-06-18T12:03:29.4632280Z             {
2026-06-18T12:03:29.4632399Z               "path": "crates/spt-daemon/src/seedmap.rs",
2026-06-18T12:03:29.4632500Z               "line": 412
2026-06-18T12:03:29.4632581Z             },
2026-06-18T12:03:29.4632661Z             {
2026-06-18T12:03:29.4632781Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4632872Z               "line": 560
2026-06-18T12:03:29.4632966Z             },
2026-06-18T12:03:29.4633055Z             {
2026-06-18T12:03:29.4633179Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4633382Z               "line": 593
2026-06-18T12:03:29.4633478Z             },
2026-06-18T12:03:29.4633560Z             {
2026-06-18T12:03:29.4633682Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4633779Z               "line": 626
2026-06-18T12:03:29.4633856Z             }
2026-06-18T12:03:29.4633945Z           ]
2026-06-18T12:03:29.4634031Z         }
2026-06-18T12:03:29.4634122Z       }
2026-06-18T12:03:29.4634298Z     },
2026-06-18T12:03:29.4634384Z     {
2026-06-18T12:03:29.4634489Z       "id": "REQ-START-4",
2026-06-18T12:03:29.4634631Z       "title": "Adapter-injected env aliases (SPT/OWL/LIVE)",
2026-06-18T12:03:29.4634738Z       "requiredStages": [
2026-06-18T12:03:29.4634813Z         "impl",
2026-06-18T12:03:29.4634904Z         "unit"
2026-06-18T12:03:29.4634985Z       ],
2026-06-18T12:03:29.4635076Z       "stages": {
2026-06-18T12:03:29.4635171Z         "doc": {
2026-06-18T12:03:29.4635271Z           "complete": false,
2026-06-18T12:03:29.4635377Z           "evidence": []
2026-06-18T12:03:29.4635457Z         },
2026-06-18T12:03:29.4635552Z         "impl": {
2026-06-18T12:03:29.4635644Z           "complete": true,
2026-06-18T12:03:29.4635744Z           "evidence": [
2026-06-18T12:03:29.4635838Z             {
2026-06-18T12:03:29.4635965Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4636067Z               "line": 581
2026-06-18T12:03:29.4636143Z             }
2026-06-18T12:03:29.4636252Z           ]
2026-06-18T12:03:29.4636338Z         },
2026-06-18T12:03:29.4636443Z         "int": {
2026-06-18T12:03:29.4636547Z           "complete": false,
2026-06-18T12:03:29.4636644Z           "evidence": []
2026-06-18T12:03:29.4636734Z         },
2026-06-18T12:03:29.4636811Z         "unit": {
2026-06-18T12:03:29.4636910Z           "complete": true,
2026-06-18T12:03:29.4637006Z           "evidence": [
2026-06-18T12:03:29.4637086Z             {
2026-06-18T12:03:29.4637215Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4637306Z               "line": 1022
2026-06-18T12:03:29.4637392Z             }
2026-06-18T12:03:29.4637478Z           ]
2026-06-18T12:03:29.4637573Z         }
2026-06-18T12:03:29.4637665Z       }
2026-06-18T12:03:29.4637749Z     },
2026-06-18T12:03:29.4637830Z     {
2026-06-18T12:03:29.4637932Z       "id": "REQ-START-5",
2026-06-18T12:03:29.4640842Z       "title": "Adapter-agnostic harness-hosted seed + bind-time adapter/profile resolution (ADR-0021): `api seed` carries only parent_pid + session_id (+ optional cwd), no --adapter — a pure \"a harness session exists at this pid\" record; --adapter becomes an OPTIONAL override across the whole api group (an explicit name[:profile] for adapter dev, never required). Omitted, listen/poll resolve the owning adapter/profile AT BIND as a pure read against the live registry — never a seed-time snapshot that can drift: seed parent_pid → exe basename → host_binaries candidate set (REQ-MANIFEST-8) → active-profile pointer (REQ-INSTALL-12) primary, else greatest-registered_at_ms candidate base profile (name-asc tie) → friendly zero-match error. Covers BOTH LiveAgent (listen) and ReadyAgent (poll) bringup. Restores legacy parity: `$LIVE start <id>` → `$SPT listen <id>` with no mandatory --adapter, one generic SessionStart hook per harness binary. (v0.9.0)",
2026-06-18T12:03:29.4640964Z       "requiredStages": [
2026-06-18T12:03:29.4641053Z         "doc",
2026-06-18T12:03:29.4641140Z         "impl",
2026-06-18T12:03:29.4641239Z         "unit",
2026-06-18T12:03:29.4641319Z         "int"
2026-06-18T12:03:29.4641404Z       ],
2026-06-18T12:03:29.4641496Z       "stages": {
2026-06-18T12:03:29.4641591Z         "doc": {
2026-06-18T12:03:29.4641690Z           "complete": true,
2026-06-18T12:03:29.4641792Z           "evidence": [
2026-06-18T12:03:29.4641872Z             {
2026-06-18T12:03:29.4641981Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4642082Z               "line": 176
2026-06-18T12:03:29.4642163Z             },
2026-06-18T12:03:29.4642249Z             {
2026-06-18T12:03:29.4642506Z               "path": "docs-site/src/harness-contract/api.md",
2026-06-18T12:03:29.4642606Z               "line": 28
2026-06-18T12:03:29.4642692Z             }
2026-06-18T12:03:29.4642779Z           ]
2026-06-18T12:03:29.4642868Z         },
2026-06-18T12:03:29.4642949Z         "impl": {
2026-06-18T12:03:29.4643046Z           "complete": true,
2026-06-18T12:03:29.4643141Z           "evidence": [
2026-06-18T12:03:29.4643240Z             {
2026-06-18T12:03:29.4643507Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.4643597Z               "line": 26
2026-06-18T12:03:29.4643697Z             },
2026-06-18T12:03:29.4643777Z             {
2026-06-18T12:03:29.4643914Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.4644005Z               "line": 212
2026-06-18T12:03:29.4644091Z             },
2026-06-18T12:03:29.4644181Z             {
2026-06-18T12:03:29.4644314Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.4644411Z               "line": 221
2026-06-18T12:03:29.4644496Z             },
2026-06-18T12:03:29.4644586Z             {
2026-06-18T12:03:29.4644706Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.4644811Z               "line": 485
2026-06-18T12:03:29.4644900Z             },
2026-06-18T12:03:29.4644983Z             {
2026-06-18T12:03:29.4645102Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4645201Z               "line": 36
2026-06-18T12:03:29.4645298Z             },
2026-06-18T12:03:29.4645388Z             {
2026-06-18T12:03:29.4645512Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4645603Z               "line": 118
2026-06-18T12:03:29.4645693Z             },
2026-06-18T12:03:29.4645788Z             {
2026-06-18T12:03:29.4645903Z               "path": "crates/spt/src/api/startup.rs",
2026-06-18T12:03:29.4646008Z               "line": 305
2026-06-18T12:03:29.4646102Z             }
2026-06-18T12:03:29.4646209Z           ]
2026-06-18T12:03:29.4646309Z         },
2026-06-18T12:03:29.4646398Z         "int": {
2026-06-18T12:03:29.4646497Z           "complete": true,
2026-06-18T12:03:29.4646593Z           "evidence": [
2026-06-18T12:03:29.4646689Z             {
2026-06-18T12:03:29.4646816Z               "path": "crates/spt/tests/live_resolve_e2e.rs",
2026-06-18T12:03:29.4646908Z               "line": 17
2026-06-18T12:03:29.4647008Z             }
2026-06-18T12:03:29.4647093Z           ]
2026-06-18T12:03:29.4647199Z         },
2026-06-18T12:03:29.4647285Z         "unit": {
2026-06-18T12:03:29.4647389Z           "complete": true,
2026-06-18T12:03:29.4647480Z           "evidence": [
2026-06-18T12:03:29.4647576Z             {
2026-06-18T12:03:29.4647704Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.4647799Z               "line": 358
2026-06-18T12:03:29.4647881Z             },
2026-06-18T12:03:29.4647971Z             {
2026-06-18T12:03:29.4648099Z               "path": "crates/spt-runtime/src/resolve.rs",
2026-06-18T12:03:29.4648196Z               "line": 371
2026-06-18T12:03:29.4648286Z             },
2026-06-18T12:03:29.4648376Z             {
2026-06-18T12:03:29.4648482Z               "path": "crates/spt/src/api/mod.rs",
2026-06-18T12:03:29.4648582Z               "line": 597
2026-06-18T12:03:29.4648661Z             }
2026-06-18T12:03:29.4648747Z           ]
2026-06-18T12:03:29.4648833Z         }
2026-06-18T12:03:29.4648932Z       }
2026-06-18T12:03:29.4649112Z     },
2026-06-18T12:03:29.4649217Z     {
2026-06-18T12:03:29.4649312Z       "id": "REQ-STORE-1",
2026-06-18T12:03:29.4650228Z       "title": "spt-store::BranchStore (git branch as versioned KV; commit=checkpoint/tip=resume, atomic multi-key, merge-native sync) is the substrate for coarse/durable/audited state (context, registry snapshot+distribution, daemon checkpoint); hot paths (B5 fsync journal) + indexed queries (SQLite spool) excluded (ADR-0011)",
2026-06-18T12:03:29.4650337Z       "requiredStages": [
2026-06-18T12:03:29.4650419Z         "impl",
2026-06-18T12:03:29.4650614Z         "unit"
2026-06-18T12:03:29.4650690Z       ],
2026-06-18T12:03:29.4650777Z       "stages": {
2026-06-18T12:03:29.4650857Z         "doc": {
2026-06-18T12:03:29.4650957Z           "complete": false,
2026-06-18T12:03:29.4651063Z           "evidence": []
2026-06-18T12:03:29.4651158Z         },
2026-06-18T12:03:29.4651248Z         "impl": {
2026-06-18T12:03:29.4651349Z           "complete": true,
2026-06-18T12:03:29.4651538Z           "evidence": [
2026-06-18T12:03:29.4651628Z             {
2026-06-18T12:03:29.4651762Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4651860Z               "line": 23
2026-06-18T12:03:29.4651941Z             },
2026-06-18T12:03:29.4652027Z             {
2026-06-18T12:03:29.4652151Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4652241Z               "line": 46
2026-06-18T12:03:29.4652332Z             },
2026-06-18T12:03:29.4652423Z             {
2026-06-18T12:03:29.4652551Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4652642Z               "line": 97
2026-06-18T12:03:29.4652723Z             },
2026-06-18T12:03:29.4652809Z             {
2026-06-18T12:03:29.4652938Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4653034Z               "line": 125
2026-06-18T12:03:29.4653133Z             },
2026-06-18T12:03:29.4653219Z             {
2026-06-18T12:03:29.4653349Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4653452Z               "line": 207
2026-06-18T12:03:29.4653534Z             },
2026-06-18T12:03:29.4653625Z             {
2026-06-18T12:03:29.4653743Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4653848Z               "line": 231
2026-06-18T12:03:29.4653940Z             },
2026-06-18T12:03:29.4654034Z             {
2026-06-18T12:03:29.4654162Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4654267Z               "line": 467
2026-06-18T12:03:29.4654347Z             },
2026-06-18T12:03:29.4654446Z             {
2026-06-18T12:03:29.4654579Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4654666Z               "line": 25
2026-06-18T12:03:29.4654756Z             },
2026-06-18T12:03:29.4654841Z             {
2026-06-18T12:03:29.4654980Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4655065Z               "line": 120
2026-06-18T12:03:29.4655170Z             },
2026-06-18T12:03:29.4655266Z             {
2026-06-18T12:03:29.4655390Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4655485Z               "line": 148
2026-06-18T12:03:29.4655577Z             },
2026-06-18T12:03:29.4655666Z             {
2026-06-18T12:03:29.4655790Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4655887Z               "line": 165
2026-06-18T12:03:29.4655986Z             },
2026-06-18T12:03:29.4656076Z             {
2026-06-18T12:03:29.4656211Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4656296Z               "line": 180
2026-06-18T12:03:29.4656391Z             },
2026-06-18T12:03:29.4656483Z             {
2026-06-18T12:03:29.4656619Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4656720Z               "line": 198
2026-06-18T12:03:29.4656807Z             },
2026-06-18T12:03:29.4656906Z             {
2026-06-18T12:03:29.4657033Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4657134Z               "line": 207
2026-06-18T12:03:29.4657221Z             },
2026-06-18T12:03:29.4657301Z             {
2026-06-18T12:03:29.4657425Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T12:03:29.4657516Z               "line": 16
2026-06-18T12:03:29.4657611Z             },
2026-06-18T12:03:29.4657696Z             {
2026-06-18T12:03:29.4657826Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T12:03:29.4658001Z               "line": 63
2026-06-18T12:03:29.4658088Z             }
2026-06-18T12:03:29.4658188Z           ]
2026-06-18T12:03:29.4658274Z         },
2026-06-18T12:03:29.4658364Z         "int": {
2026-06-18T12:03:29.4658465Z           "complete": false,
2026-06-18T12:03:29.4658564Z           "evidence": []
2026-06-18T12:03:29.4658659Z         },
2026-06-18T12:03:29.4658742Z         "unit": {
2026-06-18T12:03:29.4658837Z           "complete": true,
2026-06-18T12:03:29.4659100Z           "evidence": [
2026-06-18T12:03:29.4659194Z             {
2026-06-18T12:03:29.4659312Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4659412Z               "line": 584
2026-06-18T12:03:29.4659501Z             },
2026-06-18T12:03:29.4659586Z             {
2026-06-18T12:03:29.4659715Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4659812Z               "line": 594
2026-06-18T12:03:29.4659905Z             },
2026-06-18T12:03:29.4659996Z             {
2026-06-18T12:03:29.4660125Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4660229Z               "line": 616
2026-06-18T12:03:29.4660311Z             },
2026-06-18T12:03:29.4660398Z             {
2026-06-18T12:03:29.4660516Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4660621Z               "line": 632
2026-06-18T12:03:29.4660703Z             },
2026-06-18T12:03:29.4660807Z             {
2026-06-18T12:03:29.4660945Z               "path": "crates/spt-store/src/branchstore.rs",
2026-06-18T12:03:29.4661041Z               "line": 690
2026-06-18T12:03:29.4661127Z             },
2026-06-18T12:03:29.4661217Z             {
2026-06-18T12:03:29.4661347Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4661440Z               "line": 472
2026-06-18T12:03:29.4661522Z             },
2026-06-18T12:03:29.4661619Z             {
2026-06-18T12:03:29.4661741Z               "path": "crates/spt-store/src/contextstore.rs",
2026-06-18T12:03:29.4661837Z               "line": 507
2026-06-18T12:03:29.4661924Z             },
2026-06-18T12:03:29.4662014Z             {
2026-06-18T12:03:29.4662136Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T12:03:29.4662236Z               "line": 120
2026-06-18T12:03:29.4662331Z             },
2026-06-18T12:03:29.4662415Z             {
2026-06-18T12:03:29.4662544Z               "path": "crates/spt-store/src/project.rs",
2026-06-18T12:03:29.4662645Z               "line": 128
2026-06-18T12:03:29.4662730Z             }
2026-06-18T12:03:29.4662820Z           ]
2026-06-18T12:03:29.4662907Z         }
2026-06-18T12:03:29.4662997Z       }
2026-06-18T12:03:29.4663082Z     },
2026-06-18T12:03:29.4663173Z     {
2026-06-18T12:03:29.4663270Z       "id": "REQ-SUBNET-1",
2026-06-18T12:03:29.4663599Z       "title": "spt subnet noun namespace: status view (bare + status [NAME] [--nodes]), create (QR/otpauth), show-code; spt pair deleted",
2026-06-18T12:03:29.4663703Z       "requiredStages": [
2026-06-18T12:03:29.4663803Z         "impl",
2026-06-18T12:03:29.4663899Z         "unit"
2026-06-18T12:03:29.4663984Z       ],
2026-06-18T12:03:29.4664074Z       "stages": {
2026-06-18T12:03:29.4664166Z         "doc": {
2026-06-18T12:03:29.4664270Z           "complete": false,
2026-06-18T12:03:29.4664365Z           "evidence": []
2026-06-18T12:03:29.4664452Z         },
2026-06-18T12:03:29.4664553Z         "impl": {
2026-06-18T12:03:29.4664651Z           "complete": true,
2026-06-18T12:03:29.4664750Z           "evidence": [
2026-06-18T12:03:29.4664836Z             {
2026-06-18T12:03:29.4664982Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4665076Z               "line": 281
2026-06-18T12:03:29.4665168Z             },
2026-06-18T12:03:29.4665273Z             {
2026-06-18T12:03:29.4665396Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4665498Z               "line": 651
2026-06-18T12:03:29.4665579Z             },
2026-06-18T12:03:29.4665779Z             {
2026-06-18T12:03:29.4665893Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4665992Z               "line": 3257
2026-06-18T12:03:29.4666084Z             },
2026-06-18T12:03:29.4666174Z             {
2026-06-18T12:03:29.4666288Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4666384Z               "line": 3567
2026-06-18T12:03:29.4666475Z             },
2026-06-18T12:03:29.4666570Z             {
2026-06-18T12:03:29.4666771Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4666870Z               "line": 3586
2026-06-18T12:03:29.4666956Z             },
2026-06-18T12:03:29.4667048Z             {
2026-06-18T12:03:29.4667151Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4667252Z               "line": 3650
2026-06-18T12:03:29.4667339Z             },
2026-06-18T12:03:29.4667425Z             {
2026-06-18T12:03:29.4667537Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4667627Z               "line": 3692
2026-06-18T12:03:29.4667709Z             },
2026-06-18T12:03:29.4667795Z             {
2026-06-18T12:03:29.4667909Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4668004Z               "line": 3881
2026-06-18T12:03:29.4668086Z             },
2026-06-18T12:03:29.4668180Z             {
2026-06-18T12:03:29.4668285Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4668381Z               "line": 3951
2026-06-18T12:03:29.4668477Z             },
2026-06-18T12:03:29.4668557Z             {
2026-06-18T12:03:29.4668663Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4668748Z               "line": 4175
2026-06-18T12:03:29.4668834Z             },
2026-06-18T12:03:29.4668919Z             {
2026-06-18T12:03:29.4669072Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4669177Z               "line": 4812
2026-06-18T12:03:29.4669264Z             },
2026-06-18T12:03:29.4669359Z             {
2026-06-18T12:03:29.4669477Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4669578Z               "line": 418
2026-06-18T12:03:29.4669664Z             }
2026-06-18T12:03:29.4669758Z           ]
2026-06-18T12:03:29.4669843Z         },
2026-06-18T12:03:29.4669929Z         "int": {
2026-06-18T12:03:29.4670029Z           "complete": false,
2026-06-18T12:03:29.4670127Z           "evidence": []
2026-06-18T12:03:29.4670218Z         },
2026-06-18T12:03:29.4670309Z         "unit": {
2026-06-18T12:03:29.4670409Z           "complete": true,
2026-06-18T12:03:29.4670503Z           "evidence": [
2026-06-18T12:03:29.4670600Z             {
2026-06-18T12:03:29.4670728Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4670823Z               "line": 1584
2026-06-18T12:03:29.4670919Z             },
2026-06-18T12:03:29.4670996Z             {
2026-06-18T12:03:29.4671109Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4671191Z               "line": 9734
2026-06-18T12:03:29.4671277Z             },
2026-06-18T12:03:29.4671377Z             {
2026-06-18T12:03:29.4671482Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4671587Z               "line": 9904
2026-06-18T12:03:29.4671667Z             },
2026-06-18T12:03:29.4671758Z             {
2026-06-18T12:03:29.4671869Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4671968Z               "line": 9911
2026-06-18T12:03:29.4672068Z             },
2026-06-18T12:03:29.4672155Z             {
2026-06-18T12:03:29.4672273Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4672369Z               "line": 9964
2026-06-18T12:03:29.4672455Z             },
2026-06-18T12:03:29.4675661Z             {
2026-06-18T12:03:29.4675838Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4675942Z               "line": 9981
2026-06-18T12:03:29.4676044Z             },
2026-06-18T12:03:29.4676144Z             {
2026-06-18T12:03:29.4676262Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4676501Z               "line": 10011
2026-06-18T12:03:29.4676591Z             },
2026-06-18T12:03:29.4676687Z             {
2026-06-18T12:03:29.4676811Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4676906Z               "line": 10110
2026-06-18T12:03:29.4677002Z             },
2026-06-18T12:03:29.4677087Z             {
2026-06-18T12:03:29.4677206Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4677298Z               "line": 10261
2026-06-18T12:03:29.4677487Z             }
2026-06-18T12:03:29.4677584Z           ]
2026-06-18T12:03:29.4677666Z         }
2026-06-18T12:03:29.4677759Z       }
2026-06-18T12:03:29.4677840Z     },
2026-06-18T12:03:29.4677937Z     {
2026-06-18T12:03:29.4678036Z       "id": "REQ-SUBNET-2",
2026-06-18T12:03:29.4678307Z       "title": "Guided join e2e: spt subnet join CLI initiator + always-on daemon pairing responder",
2026-06-18T12:03:29.4678411Z       "requiredStages": [
2026-06-18T12:03:29.4678497Z         "impl",
2026-06-18T12:03:29.4678588Z         "unit",
2026-06-18T12:03:29.4678674Z         "int"
2026-06-18T12:03:29.4678769Z       ],
2026-06-18T12:03:29.4678850Z       "stages": {
2026-06-18T12:03:29.4678932Z         "doc": {
2026-06-18T12:03:29.4679131Z           "complete": true,
2026-06-18T12:03:29.4679228Z           "evidence": [
2026-06-18T12:03:29.4679327Z             {
2026-06-18T12:03:29.4679514Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-18T12:03:29.4679604Z               "line": 60
2026-06-18T12:03:29.4679704Z             }
2026-06-18T12:03:29.4679794Z           ]
2026-06-18T12:03:29.4679886Z         },
2026-06-18T12:03:29.4679966Z         "impl": {
2026-06-18T12:03:29.4680071Z           "complete": true,
2026-06-18T12:03:29.4680158Z           "evidence": [
2026-06-18T12:03:29.4680253Z             {
2026-06-18T12:03:29.4680375Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.4680466Z               "line": 838
2026-06-18T12:03:29.4680561Z             },
2026-06-18T12:03:29.4680654Z             {
2026-06-18T12:03:29.4680778Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4680869Z               "line": 1265
2026-06-18T12:03:29.4680959Z             },
2026-06-18T12:03:29.4681045Z             {
2026-06-18T12:03:29.4681174Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4681269Z               "line": 633
2026-06-18T12:03:29.4681360Z             },
2026-06-18T12:03:29.4681446Z             {
2026-06-18T12:03:29.4681575Z               "path": "crates/spt-daemon/src/nethost.rs",
2026-06-18T12:03:29.4681670Z               "line": 817
2026-06-18T12:03:29.4681756Z             },
2026-06-18T12:03:29.4681842Z             {
2026-06-18T12:03:29.4681970Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4682066Z               "line": 26
2026-06-18T12:03:29.4682161Z             },
2026-06-18T12:03:29.4682247Z             {
2026-06-18T12:03:29.4682371Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4682472Z               "line": 60
2026-06-18T12:03:29.4682561Z             },
2026-06-18T12:03:29.4682652Z             {
2026-06-18T12:03:29.4682777Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4682881Z               "line": 168
2026-06-18T12:03:29.4682962Z             },
2026-06-18T12:03:29.4683054Z             {
2026-06-18T12:03:29.4683181Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4683285Z               "line": 295
2026-06-18T12:03:29.4683381Z             },
2026-06-18T12:03:29.4683461Z             {
2026-06-18T12:03:29.4683587Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4683683Z               "line": 417
2026-06-18T12:03:29.4683770Z             },
2026-06-18T12:03:29.4683855Z             {
2026-06-18T12:03:29.4683993Z               "path": "crates/spt-net/src/net/pairing/meet.rs",
2026-06-18T12:03:29.4684085Z               "line": 252
2026-06-18T12:03:29.4684165Z             },
2026-06-18T12:03:29.4684371Z             {
2026-06-18T12:03:29.4684476Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4684579Z               "line": 3613
2026-06-18T12:03:29.4684671Z             },
2026-06-18T12:03:29.4684756Z             {
2026-06-18T12:03:29.4684861Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4684942Z               "line": 4114
2026-06-18T12:03:29.4685033Z             },
2026-06-18T12:03:29.4685118Z             {
2026-06-18T12:03:29.4685320Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4685410Z               "line": 4743
2026-06-18T12:03:29.4685496Z             }
2026-06-18T12:03:29.4685587Z           ]
2026-06-18T12:03:29.4685663Z         },
2026-06-18T12:03:29.4685753Z         "int": {
2026-06-18T12:03:29.4685847Z           "complete": true,
2026-06-18T12:03:29.4685952Z           "evidence": [
2026-06-18T12:03:29.4686051Z             {
2026-06-18T12:03:29.4686178Z               "path": "crates/spt-daemon/tests/pairjoin.rs",
2026-06-18T12:03:29.4686288Z               "line": 22
2026-06-18T12:03:29.4686366Z             },
2026-06-18T12:03:29.4686459Z             {
2026-06-18T12:03:29.4686580Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4686675Z               "line": 644
2026-06-18T12:03:29.4686769Z             },
2026-06-18T12:03:29.4686855Z             {
2026-06-18T12:03:29.4686985Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4687089Z               "line": 886
2026-06-18T12:03:29.4687180Z             }
2026-06-18T12:03:29.4687276Z           ]
2026-06-18T12:03:29.4687351Z         },
2026-06-18T12:03:29.4687451Z         "unit": {
2026-06-18T12:03:29.4687543Z           "complete": true,
2026-06-18T12:03:29.4687643Z           "evidence": [
2026-06-18T12:03:29.4687724Z             {
2026-06-18T12:03:29.4687853Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4687953Z               "line": 586
2026-06-18T12:03:29.4688029Z             },
2026-06-18T12:03:29.4688120Z             {
2026-06-18T12:03:29.4688230Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4688319Z               "line": 9774
2026-06-18T12:03:29.4688400Z             },
2026-06-18T12:03:29.4688488Z             {
2026-06-18T12:03:29.4688597Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4688681Z               "line": 10468
2026-06-18T12:03:29.4688761Z             }
2026-06-18T12:03:29.4688843Z           ]
2026-06-18T12:03:29.4688935Z         }
2026-06-18T12:03:29.4689095Z       }
2026-06-18T12:03:29.4689183Z     },
2026-06-18T12:03:29.4689273Z     {
2026-06-18T12:03:29.4689367Z       "id": "REQ-SUBNET-3",
2026-06-18T12:03:29.4689658Z       "title": "Node labels: hostname-default, gossiped, addressable in @node qualifiers (refuse-on-ambiguity)",
2026-06-18T12:03:29.4689759Z       "requiredStages": [
2026-06-18T12:03:29.4689850Z         "impl",
2026-06-18T12:03:29.4689935Z         "unit"
2026-06-18T12:03:29.4690021Z       ],
2026-06-18T12:03:29.4690127Z       "stages": {
2026-06-18T12:03:29.4690206Z         "doc": {
2026-06-18T12:03:29.4690311Z           "complete": false,
2026-06-18T12:03:29.4690403Z           "evidence": []
2026-06-18T12:03:29.4690498Z         },
2026-06-18T12:03:29.4690583Z         "impl": {
2026-06-18T12:03:29.4690683Z           "complete": true,
2026-06-18T12:03:29.4690785Z           "evidence": [
2026-06-18T12:03:29.4690869Z             {
2026-06-18T12:03:29.4691016Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4691121Z               "line": 152
2026-06-18T12:03:29.4691205Z             },
2026-06-18T12:03:29.4691290Z             {
2026-06-18T12:03:29.4691429Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4691524Z               "line": 299
2026-06-18T12:03:29.4691619Z             },
2026-06-18T12:03:29.4691701Z             {
2026-06-18T12:03:29.4691830Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4691929Z               "line": 443
2026-06-18T12:03:29.4692121Z             },
2026-06-18T12:03:29.4692215Z             {
2026-06-18T12:03:29.4692350Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4692440Z               "line": 532
2026-06-18T12:03:29.4692535Z             },
2026-06-18T12:03:29.4692621Z             {
2026-06-18T12:03:29.4692754Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4692850Z               "line": 125
2026-06-18T12:03:29.4693036Z             },
2026-06-18T12:03:29.4693116Z             {
2026-06-18T12:03:29.4693236Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4693333Z               "line": 253
2026-06-18T12:03:29.4693417Z             },
2026-06-18T12:03:29.4693513Z             {
2026-06-18T12:03:29.4693633Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4693732Z               "line": 264
2026-06-18T12:03:29.4693821Z             },
2026-06-18T12:03:29.4693916Z             {
2026-06-18T12:03:29.4694035Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4694125Z               "line": 285
2026-06-18T12:03:29.4694220Z             },
2026-06-18T12:03:29.4694301Z             {
2026-06-18T12:03:29.4694415Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4694510Z               "line": 621
2026-06-18T12:03:29.4694597Z             },
2026-06-18T12:03:29.4694678Z             {
2026-06-18T12:03:29.4694801Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4694898Z               "line": 680
2026-06-18T12:03:29.4694983Z             },
2026-06-18T12:03:29.4695068Z             {
2026-06-18T12:03:29.4695202Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.4695298Z               "line": 61
2026-06-18T12:03:29.4695393Z             },
2026-06-18T12:03:29.4695478Z             {
2026-06-18T12:03:29.4695613Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.4695707Z               "line": 90
2026-06-18T12:03:29.4695793Z             },
2026-06-18T12:03:29.4695890Z             {
2026-06-18T12:03:29.4696012Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.4696113Z               "line": 125
2026-06-18T12:03:29.4696200Z             },
2026-06-18T12:03:29.4696294Z             {
2026-06-18T12:03:29.4696421Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-18T12:03:29.4696522Z               "line": 9
2026-06-18T12:03:29.4696602Z             },
2026-06-18T12:03:29.4696691Z             {
2026-06-18T12:03:29.4696806Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4696902Z               "line": 3951
2026-06-18T12:03:29.4697001Z             },
2026-06-18T12:03:29.4697091Z             {
2026-06-18T12:03:29.4697202Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4697302Z               "line": 445
2026-06-18T12:03:29.4697382Z             }
2026-06-18T12:03:29.4697474Z           ]
2026-06-18T12:03:29.4697564Z         },
2026-06-18T12:03:29.4697649Z         "int": {
2026-06-18T12:03:29.4697750Z           "complete": false,
2026-06-18T12:03:29.4697845Z           "evidence": []
2026-06-18T12:03:29.4697936Z         },
2026-06-18T12:03:29.4698021Z         "unit": {
2026-06-18T12:03:29.4698132Z           "complete": true,
2026-06-18T12:03:29.4698222Z           "evidence": [
2026-06-18T12:03:29.4698303Z             {
2026-06-18T12:03:29.4698442Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4698532Z               "line": 1356
2026-06-18T12:03:29.4698622Z             },
2026-06-18T12:03:29.4698699Z             {
2026-06-18T12:03:29.4698832Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4698928Z               "line": 1713
2026-06-18T12:03:29.4699105Z             },
2026-06-18T12:03:29.4699194Z             {
2026-06-18T12:03:29.4699317Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4699518Z               "line": 890
2026-06-18T12:03:29.4699598Z             },
2026-06-18T12:03:29.4699695Z             {
2026-06-18T12:03:29.4699819Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4699913Z               "line": 991
2026-06-18T12:03:29.4699995Z             },
2026-06-18T12:03:29.4700081Z             {
2026-06-18T12:03:29.4700209Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4700405Z               "line": 1041
2026-06-18T12:03:29.4700496Z             },
2026-06-18T12:03:29.4700581Z             {
2026-06-18T12:03:29.4700711Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4700810Z               "line": 1100
2026-06-18T12:03:29.4700895Z             },
2026-06-18T12:03:29.4700982Z             {
2026-06-18T12:03:29.4701105Z               "path": "crates/spt-net/src/net/replicate.rs",
2026-06-18T12:03:29.4701205Z               "line": 234
2026-06-18T12:03:29.4701288Z             },
2026-06-18T12:03:29.4701383Z             {
2026-06-18T12:03:29.4701505Z               "path": "crates/spt-store/src/hostlabel.rs",
2026-06-18T12:03:29.4701596Z               "line": 49
2026-06-18T12:03:29.4701682Z             },
2026-06-18T12:03:29.4701760Z             {
2026-06-18T12:03:29.4701869Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4701961Z               "line": 10110
2026-06-18T12:03:29.4702052Z             },
2026-06-18T12:03:29.4702156Z             {
2026-06-18T12:03:29.4702261Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4702361Z               "line": 10216
2026-06-18T12:03:29.4702441Z             },
2026-06-18T12:03:29.4702527Z             {
2026-06-18T12:03:29.4702643Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4702728Z               "line": 10434
2026-06-18T12:03:29.4702814Z             }
2026-06-18T12:03:29.4702901Z           ]
2026-06-18T12:03:29.4702990Z         }
2026-06-18T12:03:29.4703076Z       }
2026-06-18T12:03:29.4703166Z     },
2026-06-18T12:03:29.4703258Z     {
2026-06-18T12:03:29.4703338Z       "id": "REQ-SUBNET-4",
2026-06-18T12:03:29.4703643Z       "title": "Subnet membership mutations elevation-gated (create = seed reveal; join = trust-boundary enrollment)",
2026-06-18T12:03:29.4703743Z       "requiredStages": [
2026-06-18T12:03:29.4703840Z         "impl",
2026-06-18T12:03:29.4703921Z         "unit"
2026-06-18T12:03:29.4704005Z       ],
2026-06-18T12:03:29.4704092Z       "stages": {
2026-06-18T12:03:29.4704189Z         "doc": {
2026-06-18T12:03:29.4704282Z           "complete": true,
2026-06-18T12:03:29.4704372Z           "evidence": [
2026-06-18T12:03:29.4704453Z             {
2026-06-18T12:03:29.4704614Z               "path": "docs/adr/0005-totp-seeded-spake2-node-pairing.md",
2026-06-18T12:03:29.4704713Z               "line": 60
2026-06-18T12:03:29.4704803Z             }
2026-06-18T12:03:29.4704885Z           ]
2026-06-18T12:03:29.4704975Z         },
2026-06-18T12:03:29.4705065Z         "impl": {
2026-06-18T12:03:29.4705167Z           "complete": true,
2026-06-18T12:03:29.4705262Z           "evidence": [
2026-06-18T12:03:29.4705342Z             {
2026-06-18T12:03:29.4705453Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4705548Z               "line": 3257
2026-06-18T12:03:29.4705633Z             },
2026-06-18T12:03:29.4705714Z             {
2026-06-18T12:03:29.4705829Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4705924Z               "line": 4710
2026-06-18T12:03:29.4706024Z             },
2026-06-18T12:03:29.4706107Z             {
2026-06-18T12:03:29.4706215Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4706301Z               "line": 4743
2026-06-18T12:03:29.4706388Z             }
2026-06-18T12:03:29.4706483Z           ]
2026-06-18T12:03:29.4706572Z         },
2026-06-18T12:03:29.4706673Z         "int": {
2026-06-18T12:03:29.4706774Z           "complete": false,
2026-06-18T12:03:29.4706868Z           "evidence": []
2026-06-18T12:03:29.4706962Z         },
2026-06-18T12:03:29.4707134Z         "unit": {
2026-06-18T12:03:29.4707232Z           "complete": true,
2026-06-18T12:03:29.4707322Z           "evidence": [
2026-06-18T12:03:29.4707409Z             {
2026-06-18T12:03:29.4707523Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4707603Z               "line": 9890
2026-06-18T12:03:29.4707705Z             },
2026-06-18T12:03:29.4707791Z             {
2026-06-18T12:03:29.4707900Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4708053Z               "line": 9964
2026-06-18T12:03:29.4708143Z             }
2026-06-18T12:03:29.4708238Z           ]
2026-06-18T12:03:29.4708320Z         }
2026-06-18T12:03:29.4708415Z       }
2026-06-18T12:03:29.4708501Z     },
2026-06-18T12:03:29.4708581Z     {
2026-06-18T12:03:29.4708678Z       "id": "REQ-SUBNET-5",
2026-06-18T12:03:29.4710007Z       "title": "Per-subnet serve-state: spt subnet detach <NAME> [--save] / attach <NAME> [--save] — daemon keeps running, stops/starts advertising + connecting for that subnet (peer pump + responder selective); --save persists the startup default in daemon config; the all-attached banner gains per-subnet states (M8 decision 6, --save renamed from --auto per decision 25 session)",
2026-06-18T12:03:29.4710116Z       "requiredStages": [
2026-06-18T12:03:29.4710211Z         "impl",
2026-06-18T12:03:29.4710303Z         "unit",
2026-06-18T12:03:29.4710393Z         "int"
2026-06-18T12:03:29.4710487Z       ],
2026-06-18T12:03:29.4710589Z       "stages": {
2026-06-18T12:03:29.4710684Z         "doc": {
2026-06-18T12:03:29.4710797Z           "complete": false,
2026-06-18T12:03:29.4710889Z           "evidence": []
2026-06-18T12:03:29.4710989Z         },
2026-06-18T12:03:29.4711084Z         "impl": {
2026-06-18T12:03:29.4711184Z           "complete": true,
2026-06-18T12:03:29.4711290Z           "evidence": [
2026-06-18T12:03:29.4711370Z             {
2026-06-18T12:03:29.4711514Z               "path": "crates/spt-daemon/src/daemon.rs",
2026-06-18T12:03:29.4711595Z               "line": 128
2026-06-18T12:03:29.4711693Z             },
2026-06-18T12:03:29.4711780Z             {
2026-06-18T12:03:29.4711919Z               "path": "crates/spt-daemon/src/dispatch.rs",
2026-06-18T12:03:29.4712018Z               "line": 413
2026-06-18T12:03:29.4712099Z             },
2026-06-18T12:03:29.4712184Z             {
2026-06-18T12:03:29.4712312Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4712411Z               "line": 74
2026-06-18T12:03:29.4712492Z             },
2026-06-18T12:03:29.4712578Z             {
2026-06-18T12:03:29.4712706Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.4712802Z               "line": 332
2026-06-18T12:03:29.4712898Z             },
2026-06-18T12:03:29.4712988Z             {
2026-06-18T12:03:29.4713122Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.4713213Z               "line": 621
2026-06-18T12:03:29.4713307Z             },
2026-06-18T12:03:29.4713402Z             {
2026-06-18T12:03:29.4713541Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T12:03:29.4713646Z               "line": 31
2026-06-18T12:03:29.4713736Z             },
2026-06-18T12:03:29.4713833Z             {
2026-06-18T12:03:29.4713956Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T12:03:29.4714051Z               "line": 50
2026-06-18T12:03:29.4714148Z             },
2026-06-18T12:03:29.4714241Z             {
2026-06-18T12:03:29.4714376Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T12:03:29.4714462Z               "line": 69
2026-06-18T12:03:29.4714556Z             },
2026-06-18T12:03:29.4714642Z             {
2026-06-18T12:03:29.4714777Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T12:03:29.4714875Z               "line": 113
2026-06-18T12:03:29.4714956Z             },
2026-06-18T12:03:29.4715051Z             {
2026-06-18T12:03:29.4715169Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-18T12:03:29.4715378Z               "line": 25
2026-06-18T12:03:29.4715474Z             },
2026-06-18T12:03:29.4715564Z             {
2026-06-18T12:03:29.4715703Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-18T12:03:29.4715793Z               "line": 34
2026-06-18T12:03:29.4715888Z             },
2026-06-18T12:03:29.4715974Z             {
2026-06-18T12:03:29.4716122Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T12:03:29.4716313Z               "line": 17
2026-06-18T12:03:29.4716404Z             },
2026-06-18T12:03:29.4716494Z             {
2026-06-18T12:03:29.4716608Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4716691Z               "line": 4668
2026-06-18T12:03:29.4716785Z             },
2026-06-18T12:03:29.4716895Z             {
2026-06-18T12:03:29.4717024Z               "path": "crates/spt/src/wansend.rs",
2026-06-18T12:03:29.4717108Z               "line": 419
2026-06-18T12:03:29.4717200Z             }
2026-06-18T12:03:29.4717296Z           ]
2026-06-18T12:03:29.4717391Z         },
2026-06-18T12:03:29.4717471Z         "int": {
2026-06-18T12:03:29.4717575Z           "complete": true,
2026-06-18T12:03:29.4717675Z           "evidence": [
2026-06-18T12:03:29.4717764Z             {
2026-06-18T12:03:29.4717897Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4717993Z               "line": 819
2026-06-18T12:03:29.4718088Z             }
2026-06-18T12:03:29.4718173Z           ]
2026-06-18T12:03:29.4718270Z         },
2026-06-18T12:03:29.4718375Z         "unit": {
2026-06-18T12:03:29.4718469Z           "complete": true,
2026-06-18T12:03:29.4718570Z           "evidence": [
2026-06-18T12:03:29.4718656Z             {
2026-06-18T12:03:29.4718784Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.4718875Z               "line": 341
2026-06-18T12:03:29.4719051Z             },
2026-06-18T12:03:29.4719146Z             {
2026-06-18T12:03:29.4719262Z               "path": "crates/spt-daemon/src/pump/mod.rs",
2026-06-18T12:03:29.4719385Z               "line": 1115
2026-06-18T12:03:29.4719485Z             },
2026-06-18T12:03:29.4719572Z             {
2026-06-18T12:03:29.4719695Z               "path": "crates/spt-daemon/src/serveprobe.rs",
2026-06-18T12:03:29.4719785Z               "line": 151
2026-06-18T12:03:29.4719873Z             },
2026-06-18T12:03:29.4719952Z             {
2026-06-18T12:03:29.4720095Z               "path": "crates/spt-net/src/net/serveprobe.rs",
2026-06-18T12:03:29.4720192Z               "line": 61
2026-06-18T12:03:29.4720295Z             },
2026-06-18T12:03:29.4720376Z             {
2026-06-18T12:03:29.4720515Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T12:03:29.4720610Z               "line": 111
2026-06-18T12:03:29.4720695Z             },
2026-06-18T12:03:29.4720781Z             {
2026-06-18T12:03:29.4720906Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T12:03:29.4720995Z               "line": 138
2026-06-18T12:03:29.4721086Z             },
2026-06-18T12:03:29.4721177Z             {
2026-06-18T12:03:29.4721306Z               "path": "crates/spt-store/src/attachment.rs",
2026-06-18T12:03:29.4721401Z               "line": 148
2026-06-18T12:03:29.4721497Z             },
2026-06-18T12:03:29.4721582Z             {
2026-06-18T12:03:29.4721701Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4721793Z               "line": 9791
2026-06-18T12:03:29.4721887Z             }
2026-06-18T12:03:29.4721973Z           ]
2026-06-18T12:03:29.4722064Z         }
2026-06-18T12:03:29.4722164Z       }
2026-06-18T12:03:29.4722254Z     },
2026-06-18T12:03:29.4722330Z     {
2026-06-18T12:03:29.4722428Z       "id": "REQ-SUBNET-6",
2026-06-18T12:03:29.4723138Z       "title": "Trust lifecycle verbs, elevation-gated: spt subnet leave <NAME> (membership exit) and spt subnet prune <node> (removes a dead identity's trust + registry rows, killing its dead dials; trust mutation = security surface, REQ-PAIR-6 gate machinery) (M8 decisions 6-7)",
2026-06-18T12:03:29.4723352Z       "requiredStages": [
2026-06-18T12:03:29.4723439Z         "impl",
2026-06-18T12:03:29.4723534Z         "unit"
2026-06-18T12:03:29.4723614Z       ],
2026-06-18T12:03:29.4723716Z       "stages": {
2026-06-18T12:03:29.4723805Z         "doc": {
2026-06-18T12:03:29.4723905Z           "complete": false,
2026-06-18T12:03:29.4723997Z           "evidence": []
2026-06-18T12:03:29.4724087Z         },
2026-06-18T12:03:29.4724187Z         "impl": {
2026-06-18T12:03:29.4724497Z           "complete": true,
2026-06-18T12:03:29.4724597Z           "evidence": [
2026-06-18T12:03:29.4724698Z             {
2026-06-18T12:03:29.4724826Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4724926Z               "line": 254
2026-06-18T12:03:29.4725008Z             },
2026-06-18T12:03:29.4725102Z             {
2026-06-18T12:03:29.4725207Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4725304Z               "line": 4326
2026-06-18T12:03:29.4725399Z             },
2026-06-18T12:03:29.4725488Z             {
2026-06-18T12:03:29.4725602Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4725697Z               "line": 4343
2026-06-18T12:03:29.4725786Z             },
2026-06-18T12:03:29.4725876Z             {
2026-06-18T12:03:29.4725992Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4726091Z               "line": 4396
2026-06-18T12:03:29.4726176Z             },
2026-06-18T12:03:29.4726273Z             {
2026-06-18T12:03:29.4726368Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4726462Z               "line": 4419
2026-06-18T12:03:29.4726544Z             }
2026-06-18T12:03:29.4726640Z           ]
2026-06-18T12:03:29.4726735Z         },
2026-06-18T12:03:29.4726825Z         "int": {
2026-06-18T12:03:29.4726931Z           "complete": false,
2026-06-18T12:03:29.4727030Z           "evidence": []
2026-06-18T12:03:29.4727130Z         },
2026-06-18T12:03:29.4727222Z         "unit": {
2026-06-18T12:03:29.4727330Z           "complete": true,
2026-06-18T12:03:29.4727440Z           "evidence": [
2026-06-18T12:03:29.4727522Z             {
2026-06-18T12:03:29.4727641Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4727731Z               "line": 9805
2026-06-18T12:03:29.4727828Z             },
2026-06-18T12:03:29.4727918Z             {
2026-06-18T12:03:29.4728026Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4728125Z               "line": 9838
2026-06-18T12:03:29.4728231Z             },
2026-06-18T12:03:29.4728328Z             {
2026-06-18T12:03:29.4728428Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4728534Z               "line": 9847
2026-06-18T12:03:29.4728616Z             }
2026-06-18T12:03:29.4728705Z           ]
2026-06-18T12:03:29.4728801Z         }
2026-06-18T12:03:29.4728897Z       }
2026-06-18T12:03:29.4729053Z     },
2026-06-18T12:03:29.4729140Z     {
2026-06-18T12:03:29.4729249Z       "id": "REQ-SUBNET-7",
2026-06-18T12:03:29.4730936Z       "title": "Per-machine re-pair trust overwrite: registry rows carry a hashed stable machine identifier (OS machine id /etc/machine-id|MachineGuid, domain-separated SHA-256 before gossip, spt-minted persisted UUID fallback; additive serde-default field — old rows parse clean); a COMPLETED pairing ceremony presenting the same node label AND machine id as an existing trusted row evicts the superseded identity's trust + registry rows on the seed-holder and replicates the eviction; a gossiped claim alone never evicts trust (M8 decisions 13, 22)",
2026-06-18T12:03:29.4731055Z       "requiredStages": [
2026-06-18T12:03:29.4731152Z         "impl",
2026-06-18T12:03:29.4731236Z         "unit"
2026-06-18T12:03:29.4731336Z       ],
2026-06-18T12:03:29.4731437Z       "stages": {
2026-06-18T12:03:29.4731513Z         "doc": {
2026-06-18T12:03:29.4731617Z           "complete": false,
2026-06-18T12:03:29.4731714Z           "evidence": []
2026-06-18T12:03:29.4731809Z         },
2026-06-18T12:03:29.4731899Z         "impl": {
2026-06-18T12:03:29.4732133Z           "complete": true,
2026-06-18T12:03:29.4732223Z           "evidence": [
2026-06-18T12:03:29.4732309Z             {
2026-06-18T12:03:29.4732438Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-18T12:03:29.4732519Z               "line": 17
2026-06-18T12:03:29.4732615Z             },
2026-06-18T12:03:29.4732696Z             {
2026-06-18T12:03:29.4732828Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4733025Z               "line": 103
2026-06-18T12:03:29.4733115Z             },
2026-06-18T12:03:29.4733195Z             {
2026-06-18T12:03:29.4733324Z               "path": "crates/spt-daemon/src/pairhost.rs",
2026-06-18T12:03:29.4733427Z               "line": 312
2026-06-18T12:03:29.4733512Z             },
2026-06-18T12:03:29.4733603Z             {
2026-06-18T12:03:29.4733742Z               "path": "crates/spt-daemon/src/pump/registry.rs",
2026-06-18T12:03:29.4733836Z               "line": 131
2026-06-18T12:03:29.4733927Z             },
2026-06-18T12:03:29.4734023Z             {
2026-06-18T12:03:29.4734165Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4734262Z               "line": 160
2026-06-18T12:03:29.4734361Z             },
2026-06-18T12:03:29.4734442Z             {
2026-06-18T12:03:29.4734577Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4734676Z               "line": 447
2026-06-18T12:03:29.4734762Z             },
2026-06-18T12:03:29.4734862Z             {
2026-06-18T12:03:29.4734990Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4735081Z               "line": 670
2026-06-18T12:03:29.4735177Z             },
2026-06-18T12:03:29.4735258Z             {
2026-06-18T12:03:29.4735396Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4735482Z               "line": 710
2026-06-18T12:03:29.4735568Z             },
2026-06-18T12:03:29.4735667Z             {
2026-06-18T12:03:29.4735787Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4735893Z               "line": 766
2026-06-18T12:03:29.4735977Z             },
2026-06-18T12:03:29.4736067Z             {
2026-06-18T12:03:29.4736191Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4736294Z               "line": 136
2026-06-18T12:03:29.4736393Z             },
2026-06-18T12:03:29.4736480Z             {
2026-06-18T12:03:29.4736614Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4736712Z               "line": 139
2026-06-18T12:03:29.4736809Z             }
2026-06-18T12:03:29.4736900Z           ]
2026-06-18T12:03:29.4736990Z         },
2026-06-18T12:03:29.4737090Z         "int": {
2026-06-18T12:03:29.4737181Z           "complete": false,
2026-06-18T12:03:29.4737286Z           "evidence": []
2026-06-18T12:03:29.4737375Z         },
2026-06-18T12:03:29.4737467Z         "unit": {
2026-06-18T12:03:29.4737562Z           "complete": true,
2026-06-18T12:03:29.4737666Z           "evidence": [
2026-06-18T12:03:29.4737758Z             {
2026-06-18T12:03:29.4737886Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-18T12:03:29.4737990Z               "line": 136
2026-06-18T12:03:29.4738083Z             },
2026-06-18T12:03:29.4738178Z             {
2026-06-18T12:03:29.4738305Z               "path": "crates/spt-daemon/src/machineid.rs",
2026-06-18T12:03:29.4738407Z               "line": 156
2026-06-18T12:03:29.4738493Z             },
2026-06-18T12:03:29.4738581Z             {
2026-06-18T12:03:29.4738715Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4738805Z               "line": 987
2026-06-18T12:03:29.4738898Z             },
2026-06-18T12:03:29.4739056Z             {
2026-06-18T12:03:29.4739185Z               "path": "crates/spt-daemon/src/registryhost.rs",
2026-06-18T12:03:29.4739294Z               "line": 1009
2026-06-18T12:03:29.4739380Z             },
2026-06-18T12:03:29.4739475Z             {
2026-06-18T12:03:29.4739608Z               "path": "crates/spt-net/src/net/pairing/wire.rs",
2026-06-18T12:03:29.4739809Z               "line": 1419
2026-06-18T12:03:29.4739894Z             },
2026-06-18T12:03:29.4739991Z             {
2026-06-18T12:03:29.4740114Z               "path": "crates/spt-net/src/net/registry.rs",
2026-06-18T12:03:29.4740195Z               "line": 1036
2026-06-18T12:03:29.4740290Z             }
2026-06-18T12:03:29.4740378Z           ]
2026-06-18T12:03:29.4740467Z         }
2026-06-18T12:03:29.4740654Z       }
2026-06-18T12:03:29.4740749Z     },
2026-06-18T12:03:29.4740834Z     {
2026-06-18T12:03:29.4740935Z       "id": "REQ-SUBNET-8",
2026-06-18T12:03:29.4742059Z       "title": "Status render honesty: zero-subnet text is daemon-aware ('No subnets registered — this node is standalone.' + daemon-running-dependent blurb, never implying messaging works while the daemon is down); hint footer prints on bare spt subnet only (status drops it); a stalled pump is surfaced in subnet status, never rendered implied-healthy (M8 decisions 11-12, 23)",
2026-06-18T12:03:29.4742173Z       "requiredStages": [
2026-06-18T12:03:29.4742265Z         "impl",
2026-06-18T12:03:29.4742359Z         "unit"
2026-06-18T12:03:29.4742449Z       ],
2026-06-18T12:03:29.4742541Z       "stages": {
2026-06-18T12:03:29.4742622Z         "doc": {
2026-06-18T12:03:29.4742731Z           "complete": false,
2026-06-18T12:03:29.4742826Z           "evidence": []
2026-06-18T12:03:29.4742913Z         },
2026-06-18T12:03:29.4743003Z         "impl": {
2026-06-18T12:03:29.4743098Z           "complete": true,
2026-06-18T12:03:29.4743185Z           "evidence": [
2026-06-18T12:03:29.4743271Z             {
2026-06-18T12:03:29.4743389Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4743480Z               "line": 3693
2026-06-18T12:03:29.4743562Z             },
2026-06-18T12:03:29.4743655Z             {
2026-06-18T12:03:29.4743755Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4743855Z               "line": 3722
2026-06-18T12:03:29.4743945Z             },
2026-06-18T12:03:29.4744030Z             {
2026-06-18T12:03:29.4744134Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4744230Z               "line": 3739
2026-06-18T12:03:29.4744325Z             },
2026-06-18T12:03:29.4744415Z             {
2026-06-18T12:03:29.4744516Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4744612Z               "line": 3762
2026-06-18T12:03:29.4744692Z             },
2026-06-18T12:03:29.4744783Z             {
2026-06-18T12:03:29.4744898Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4745002Z               "line": 4176
2026-06-18T12:03:29.4745088Z             }
2026-06-18T12:03:29.4745170Z           ]
2026-06-18T12:03:29.4745255Z         },
2026-06-18T12:03:29.4745340Z         "int": {
2026-06-18T12:03:29.4745431Z           "complete": false,
2026-06-18T12:03:29.4745532Z           "evidence": []
2026-06-18T12:03:29.4745627Z         },
2026-06-18T12:03:29.4745717Z         "unit": {
2026-06-18T12:03:29.4745818Z           "complete": true,
2026-06-18T12:03:29.4745922Z           "evidence": [
2026-06-18T12:03:29.4746013Z             {
2026-06-18T12:03:29.4746124Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4746213Z               "line": 9995
2026-06-18T12:03:29.4746309Z             },
2026-06-18T12:03:29.4746400Z             {
2026-06-18T12:03:29.4746514Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4749577Z               "line": 10011
2026-06-18T12:03:29.4749712Z             }
2026-06-18T12:03:29.4749797Z           ]
2026-06-18T12:03:29.4749892Z         }
2026-06-18T12:03:29.4749989Z       }
2026-06-18T12:03:29.4750079Z     },
2026-06-18T12:03:29.4750159Z     {
2026-06-18T12:03:29.4750265Z       "id": "REQ-TERM-1",
2026-06-18T12:03:29.4750469Z       "title": "Process-supervisor terminal wrapper hosting broker PTYs",
2026-06-18T12:03:29.4750570Z       "requiredStages": [
2026-06-18T12:03:29.4750670Z         "impl",
2026-06-18T12:03:29.4750765Z         "unit"
2026-06-18T12:03:29.4750985Z       ],
2026-06-18T12:03:29.4751080Z       "stages": {
2026-06-18T12:03:29.4751170Z         "doc": {
2026-06-18T12:03:29.4751276Z           "complete": false,
2026-06-18T12:03:29.4751370Z           "evidence": []
2026-06-18T12:03:29.4751456Z         },
2026-06-18T12:03:29.4751543Z         "impl": {
2026-06-18T12:03:29.4751633Z           "complete": true,
2026-06-18T12:03:29.4751728Z           "evidence": [
2026-06-18T12:03:29.4751810Z             {
2026-06-18T12:03:29.4752032Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T12:03:29.4752122Z               "line": 59
2026-06-18T12:03:29.4752219Z             },
2026-06-18T12:03:29.4752300Z             {
2026-06-18T12:03:29.4752404Z               "path": "crates/spt-term/src/pty.rs",
2026-06-18T12:03:29.4752500Z               "line": 234
2026-06-18T12:03:29.4752590Z             },
2026-06-18T12:03:29.4752680Z             {
2026-06-18T12:03:29.4752810Z               "path": "crates/spt-term/src/surface.rs",
2026-06-18T12:03:29.4752919Z               "line": 100
2026-06-18T12:03:29.4753004Z             }
2026-06-18T12:03:29.4753091Z           ]
2026-06-18T12:03:29.4753178Z         },
2026-06-18T12:03:29.4753262Z         "int": {
2026-06-18T12:03:29.4753367Z           "complete": false,
2026-06-18T12:03:29.4753449Z           "evidence": []
2026-06-18T12:03:29.4753535Z         },
2026-06-18T12:03:29.4753620Z         "unit": {
2026-06-18T12:03:29.4753715Z           "complete": true,
2026-06-18T12:03:29.4753812Z           "evidence": [
2026-06-18T12:03:29.4753901Z             {
2026-06-18T12:03:29.4754026Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-18T12:03:29.4754108Z               "line": 24
2026-06-18T12:03:29.4754202Z             },
2026-06-18T12:03:29.4754282Z             {
2026-06-18T12:03:29.4754396Z               "path": "crates/spt-term/tests/surface.rs",
2026-06-18T12:03:29.4754491Z               "line": 56
2026-06-18T12:03:29.4754570Z             }
2026-06-18T12:03:29.4754656Z           ]
2026-06-18T12:03:29.4754747Z         }
2026-06-18T12:03:29.4754834Z       }
2026-06-18T12:03:29.4754923Z     },
2026-06-18T12:03:29.4755004Z     {
2026-06-18T12:03:29.4755110Z       "id": "REQ-TERM-2",
2026-06-18T12:03:29.4755299Z       "title": "session-surface abstraction; send-keys + send-line injection",
2026-06-18T12:03:29.4755406Z       "requiredStages": [
2026-06-18T12:03:29.4755491Z         "impl",
2026-06-18T12:03:29.4755586Z         "unit"
2026-06-18T12:03:29.4755677Z       ],
2026-06-18T12:03:29.4755777Z       "stages": {
2026-06-18T12:03:29.4755872Z         "doc": {
2026-06-18T12:03:29.4755967Z           "complete": false,
2026-06-18T12:03:29.4756068Z           "evidence": []
2026-06-18T12:03:29.4756159Z         },
2026-06-18T12:03:29.4756254Z         "impl": {
2026-06-18T12:03:29.4756355Z           "complete": true,
2026-06-18T12:03:29.4756449Z           "evidence": [
2026-06-18T12:03:29.4756544Z             {
2026-06-18T12:03:29.4756675Z               "path": "crates/spt-term/src/surface.rs",
2026-06-18T12:03:29.4756773Z               "line": 117
2026-06-18T12:03:29.4756864Z             },
2026-06-18T12:03:29.4756960Z             {
2026-06-18T12:03:29.4757083Z               "path": "crates/spt-term/src/surface.rs",
2026-06-18T12:03:29.4757168Z               "line": 127
2026-06-18T12:03:29.4757254Z             }
2026-06-18T12:03:29.4757340Z           ]
2026-06-18T12:03:29.4757424Z         },
2026-06-18T12:03:29.4757513Z         "int": {
2026-06-18T12:03:29.4757614Z           "complete": false,
2026-06-18T12:03:29.4757720Z           "evidence": []
2026-06-18T12:03:29.4757795Z         },
2026-06-18T12:03:29.4757881Z         "unit": {
2026-06-18T12:03:29.4757977Z           "complete": true,
2026-06-18T12:03:29.4758072Z           "evidence": [
2026-06-18T12:03:29.4758153Z             {
2026-06-18T12:03:29.4758282Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-18T12:03:29.4758382Z               "line": 46
2026-06-18T12:03:29.4758467Z             },
2026-06-18T12:03:29.4758549Z             {
2026-06-18T12:03:29.4758754Z               "path": "crates/spt-term/tests/inject.rs",
2026-06-18T12:03:29.4758859Z               "line": 77
2026-06-18T12:03:29.4759011Z             }
2026-06-18T12:03:29.4759097Z           ]
2026-06-18T12:03:29.4759193Z         }
2026-06-18T12:03:29.4759279Z       }
2026-06-18T12:03:29.4759364Z     },
2026-06-18T12:03:29.4759459Z     {
2026-06-18T12:03:29.4759561Z       "id": "REQ-TERM-3",
2026-06-18T12:03:29.4759711Z       "title": "Byte-stream remote terminal streaming for v1",
2026-06-18T12:03:29.4759916Z       "requiredStages": [
2026-06-18T12:03:29.4760014Z         "impl",
2026-06-18T12:03:29.4760099Z         "unit"
2026-06-18T12:03:29.4760181Z       ],
2026-06-18T12:03:29.4760262Z       "stages": {
2026-06-18T12:03:29.4760348Z         "doc": {
2026-06-18T12:03:29.4760443Z           "complete": false,
2026-06-18T12:03:29.4760539Z           "evidence": []
2026-06-18T12:03:29.4760630Z         },
2026-06-18T12:03:29.4760709Z         "impl": {
2026-06-18T12:03:29.4760811Z           "complete": true,
2026-06-18T12:03:29.4760916Z           "evidence": [
2026-06-18T12:03:29.4760996Z             {
2026-06-18T12:03:29.4761121Z               "path": "crates/spt-term/src/stream.rs",
2026-06-18T12:03:29.4761221Z               "line": 71
2026-06-18T12:03:29.4761316Z             }
2026-06-18T12:03:29.4761402Z           ]
2026-06-18T12:03:29.4761493Z         },
2026-06-18T12:03:29.4761578Z         "int": {
2026-06-18T12:03:29.4761677Z           "complete": false,
2026-06-18T12:03:29.4761779Z           "evidence": []
2026-06-18T12:03:29.4761864Z         },
2026-06-18T12:03:29.4761960Z         "unit": {
2026-06-18T12:03:29.4762046Z           "complete": true,
2026-06-18T12:03:29.4762137Z           "evidence": [
2026-06-18T12:03:29.4762221Z             {
2026-06-18T12:03:29.4762336Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-18T12:03:29.4762432Z               "line": 37
2026-06-18T12:03:29.4762522Z             },
2026-06-18T12:03:29.4762616Z             {
2026-06-18T12:03:29.4762745Z               "path": "crates/spt-term/tests/stream.rs",
2026-06-18T12:03:29.4762842Z               "line": 67
2026-06-18T12:03:29.4762930Z             }
2026-06-18T12:03:29.4763011Z           ]
2026-06-18T12:03:29.4763094Z         }
2026-06-18T12:03:29.4763185Z       }
2026-06-18T12:03:29.4763269Z     },
2026-06-18T12:03:29.4763351Z     {
2026-06-18T12:03:29.4763461Z       "id": "REQ-TERM-4",
2026-06-18T12:03:29.4763985Z       "title": "Live activity buffer (session digest): projection of normalized session logs, snapshot-pull (spt endpoint digest) + structured-delta-stream contract + api digest-entry push",
2026-06-18T12:03:29.4764091Z       "requiredStages": [
2026-06-18T12:03:29.4764190Z         "impl",
2026-06-18T12:03:29.4764271Z         "unit",
2026-06-18T12:03:29.4764363Z         "int"
2026-06-18T12:03:29.4764457Z       ],
2026-06-18T12:03:29.4764547Z       "stages": {
2026-06-18T12:03:29.4764634Z         "doc": {
2026-06-18T12:03:29.4764734Z           "complete": false,
2026-06-18T12:03:29.4764823Z           "evidence": []
2026-06-18T12:03:29.4764899Z         },
2026-06-18T12:03:29.4764990Z         "impl": {
2026-06-18T12:03:29.4765084Z           "complete": true,
2026-06-18T12:03:29.4765183Z           "evidence": [
2026-06-18T12:03:29.4765269Z             {
2026-06-18T12:03:29.4765399Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4765479Z               "line": 37
2026-06-18T12:03:29.4765574Z             },
2026-06-18T12:03:29.4765670Z             {
2026-06-18T12:03:29.4765807Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4765898Z               "line": 25
2026-06-18T12:03:29.4765990Z             },
2026-06-18T12:03:29.4766085Z             {
2026-06-18T12:03:29.4766203Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4766305Z               "line": 114
2026-06-18T12:03:29.4766395Z             },
2026-06-18T12:03:29.4766470Z             {
2026-06-18T12:03:29.4766591Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4766809Z               "line": 267
2026-06-18T12:03:29.4766896Z             },
2026-06-18T12:03:29.4766986Z             {
2026-06-18T12:03:29.4767104Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4767206Z               "line": 289
2026-06-18T12:03:29.4767287Z             },
2026-06-18T12:03:29.4767371Z             {
2026-06-18T12:03:29.4767502Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4767676Z               "line": 307
2026-06-18T12:03:29.4767761Z             },
2026-06-18T12:03:29.4767847Z             {
2026-06-18T12:03:29.4767970Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T12:03:29.4768050Z               "line": 33
2026-06-18T12:03:29.4768136Z             },
2026-06-18T12:03:29.4768222Z             {
2026-06-18T12:03:29.4768355Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4768446Z               "line": 52
2026-06-18T12:03:29.4768537Z             },
2026-06-18T12:03:29.4768628Z             {
2026-06-18T12:03:29.4768750Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4768843Z               "line": 180
2026-06-18T12:03:29.4768933Z             },
2026-06-18T12:03:29.4769095Z             {
2026-06-18T12:03:29.4769223Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4769323Z               "line": 190
2026-06-18T12:03:29.4769404Z             },
2026-06-18T12:03:29.4769496Z             {
2026-06-18T12:03:29.4769628Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4769724Z               "line": 250
2026-06-18T12:03:29.4769816Z             },
2026-06-18T12:03:29.4769900Z             {
2026-06-18T12:03:29.4770024Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4770121Z               "line": 280
2026-06-18T12:03:29.4770206Z             },
2026-06-18T12:03:29.4770286Z             {
2026-06-18T12:03:29.4770409Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4770499Z               "line": 291
2026-06-18T12:03:29.4770593Z             },
2026-06-18T12:03:29.4770674Z             {
2026-06-18T12:03:29.4770784Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4770880Z               "line": 1179
2026-06-18T12:03:29.4770955Z             }
2026-06-18T12:03:29.4771041Z           ]
2026-06-18T12:03:29.4771123Z         },
2026-06-18T12:03:29.4771218Z         "int": {
2026-06-18T12:03:29.4771322Z           "complete": true,
2026-06-18T12:03:29.4771419Z           "evidence": [
2026-06-18T12:03:29.4771504Z             {
2026-06-18T12:03:29.4771637Z               "path": "crates/spt-daemon/tests/digest.rs",
2026-06-18T12:03:29.4771724Z               "line": 18
2026-06-18T12:03:29.4771814Z             }
2026-06-18T12:03:29.4771895Z           ]
2026-06-18T12:03:29.4771981Z         },
2026-06-18T12:03:29.4772067Z         "unit": {
2026-06-18T12:03:29.4772162Z           "complete": true,
2026-06-18T12:03:29.4772257Z           "evidence": [
2026-06-18T12:03:29.4772345Z             {
2026-06-18T12:03:29.4772462Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4772558Z               "line": 364
2026-06-18T12:03:29.4772640Z             },
2026-06-18T12:03:29.4772725Z             {
2026-06-18T12:03:29.4772839Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4772930Z               "line": 416
2026-06-18T12:03:29.4773016Z             },
2026-06-18T12:03:29.4773110Z             {
2026-06-18T12:03:29.4773238Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4773324Z               "line": 426
2026-06-18T12:03:29.4773416Z             },
2026-06-18T12:03:29.4773496Z             {
2026-06-18T12:03:29.4773625Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4773720Z               "line": 436
2026-06-18T12:03:29.4773811Z             },
2026-06-18T12:03:29.4773887Z             {
2026-06-18T12:03:29.4774016Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4774216Z               "line": 456
2026-06-18T12:03:29.4774303Z             },
2026-06-18T12:03:29.4774397Z             {
2026-06-18T12:03:29.4774511Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4774598Z               "line": 478
2026-06-18T12:03:29.4774688Z             },
2026-06-18T12:03:29.4774774Z             {
2026-06-18T12:03:29.4774904Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4775084Z               "line": 491
2026-06-18T12:03:29.4775175Z             },
2026-06-18T12:03:29.4775252Z             {
2026-06-18T12:03:29.4775374Z               "path": "crates/spt-daemon/src/digesthub.rs",
2026-06-18T12:03:29.4775473Z               "line": 502
2026-06-18T12:03:29.4775550Z             },
2026-06-18T12:03:29.4775645Z             {
2026-06-18T12:03:29.4775762Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T12:03:29.4775853Z               "line": 108
2026-06-18T12:03:29.4775959Z             },
2026-06-18T12:03:29.4776043Z             {
2026-06-18T12:03:29.4776173Z               "path": "crates/spt-term/src/digest.rs",
2026-06-18T12:03:29.4776273Z               "line": 119
2026-06-18T12:03:29.4776367Z             },
2026-06-18T12:03:29.4776453Z             {
2026-06-18T12:03:29.4776578Z               "path": "crates/spt-term/src/digest.rs",
2026-06-18T12:03:29.4776673Z               "line": 127
2026-06-18T12:03:29.4776763Z             },
2026-06-18T12:03:29.4776855Z             {
2026-06-18T12:03:29.4776983Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4777074Z               "line": 474
2026-06-18T12:03:29.4777160Z             },
2026-06-18T12:03:29.4777236Z             {
2026-06-18T12:03:29.4777359Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4777446Z               "line": 501
2026-06-18T12:03:29.4777537Z             },
2026-06-18T12:03:29.4777622Z             {
2026-06-18T12:03:29.4777761Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4777852Z               "line": 520
2026-06-18T12:03:29.4777936Z             },
2026-06-18T12:03:29.4778018Z             {
2026-06-18T12:03:29.4778138Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4778227Z               "line": 535
2026-06-18T12:03:29.4778308Z             },
2026-06-18T12:03:29.4778403Z             {
2026-06-18T12:03:29.4778540Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4778620Z               "line": 561
2026-06-18T12:03:29.4778706Z             },
2026-06-18T12:03:29.4778787Z             {
2026-06-18T12:03:29.4778906Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4779093Z               "line": 581
2026-06-18T12:03:29.4779179Z             },
2026-06-18T12:03:29.4779268Z             {
2026-06-18T12:03:29.4779393Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4779488Z               "line": 591
2026-06-18T12:03:29.4779578Z             },
2026-06-18T12:03:29.4779669Z             {
2026-06-18T12:03:29.4779783Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4779883Z               "line": 683
2026-06-18T12:03:29.4779964Z             },
2026-06-18T12:03:29.4780052Z             {
2026-06-18T12:03:29.4780179Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4780265Z               "line": 881
2026-06-18T12:03:29.4780357Z             },
2026-06-18T12:03:29.4780441Z             {
2026-06-18T12:03:29.4780561Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4780662Z               "line": 9562
2026-06-18T12:03:29.4780752Z             }
2026-06-18T12:03:29.4780846Z           ]
2026-06-18T12:03:29.4780926Z         }
2026-06-18T12:03:29.4781013Z       }
2026-06-18T12:03:29.4781097Z     },
2026-06-18T12:03:29.4781187Z     {
2026-06-18T12:03:29.4781287Z       "id": "REQ-TERM-5",
2026-06-18T12:03:29.4782836Z       "title": "Adapter-declared digest extractor seam: a `[digest]` manifest section declaring an imperative extractor (native harness log -> the {role,text,tool,ts} contract; defaults to the [history] source files with an own-source escape hatch), `api digest-entry` push fallback, register-time validation of the section, adapter-declared presentation defaults (window depth, arg-truncation, sprint-collapse) that any consumer may override, and a `spt adapter digest-proof` author tool plus runtime skip-diagnostics (no silent drop). Reverses M9's no-manifest-seam stance; no declarative DSL.",
2026-06-18T12:03:29.4783123Z       "requiredStages": [
2026-06-18T12:03:29.4783214Z         "doc",
2026-06-18T12:03:29.4783295Z         "impl",
2026-06-18T12:03:29.4783380Z         "unit",
2026-06-18T12:03:29.4783466Z         "int"
2026-06-18T12:03:29.4783553Z       ],
2026-06-18T12:03:29.4783647Z       "stages": {
2026-06-18T12:03:29.4783732Z         "doc": {
2026-06-18T12:03:29.4783832Z           "complete": true,
2026-06-18T12:03:29.4783938Z           "evidence": [
2026-06-18T12:03:29.4784013Z             {
2026-06-18T12:03:29.4784123Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.4784224Z               "line": 189
2026-06-18T12:03:29.4784314Z             }
2026-06-18T12:03:29.4784403Z           ]
2026-06-18T12:03:29.4784491Z         },
2026-06-18T12:03:29.4784576Z         "impl": {
2026-06-18T12:03:29.4784676Z           "complete": true,
2026-06-18T12:03:29.4784762Z           "evidence": [
2026-06-18T12:03:29.4784863Z             {
2026-06-18T12:03:29.4784991Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4785086Z               "line": 75
2026-06-18T12:03:29.4785173Z             },
2026-06-18T12:03:29.4785258Z             {
2026-06-18T12:03:29.4785386Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4785487Z               "line": 131
2026-06-18T12:03:29.4785577Z             },
2026-06-18T12:03:29.4785663Z             {
2026-06-18T12:03:29.4785788Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4785887Z               "line": 22
2026-06-18T12:03:29.4785977Z             },
2026-06-18T12:03:29.4786067Z             {
2026-06-18T12:03:29.4786186Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4786284Z               "line": 87
2026-06-18T12:03:29.4786370Z             },
2026-06-18T12:03:29.4786461Z             {
2026-06-18T12:03:29.4786576Z               "path": "crates/spt-term/src/digest.rs",
2026-06-18T12:03:29.4786675Z               "line": 30
2026-06-18T12:03:29.4786766Z             },
2026-06-18T12:03:29.4786847Z             {
2026-06-18T12:03:29.4786975Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4787058Z               "line": 103
2026-06-18T12:03:29.4787148Z             },
2026-06-18T12:03:29.4787238Z             {
2026-06-18T12:03:29.4787363Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4787463Z               "line": 167
2026-06-18T12:03:29.4787553Z             },
2026-06-18T12:03:29.4787639Z             {
2026-06-18T12:03:29.4787768Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4787868Z               "line": 434
2026-06-18T12:03:29.4787963Z             },
2026-06-18T12:03:29.4788050Z             {
2026-06-18T12:03:29.4788162Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4788258Z               "line": 5489
2026-06-18T12:03:29.4788350Z             },
2026-06-18T12:03:29.4788435Z             {
2026-06-18T12:03:29.4788540Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4788641Z               "line": 5796
2026-06-18T12:03:29.4788722Z             }
2026-06-18T12:03:29.4788806Z           ]
2026-06-18T12:03:29.4788891Z         },
2026-06-18T12:03:29.4789053Z         "int": {
2026-06-18T12:03:29.4789146Z           "complete": true,
2026-06-18T12:03:29.4789246Z           "evidence": [
2026-06-18T12:03:29.4789362Z             {
2026-06-18T12:03:29.4789513Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-18T12:03:29.4789709Z               "line": 17
2026-06-18T12:03:29.4789790Z             }
2026-06-18T12:03:29.4789885Z           ]
2026-06-18T12:03:29.4789963Z         },
2026-06-18T12:03:29.4790048Z         "unit": {
2026-06-18T12:03:29.4790147Z           "complete": true,
2026-06-18T12:03:29.4790234Z           "evidence": [
2026-06-18T12:03:29.4790321Z             {
2026-06-18T12:03:29.4790443Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4790654Z               "line": 375
2026-06-18T12:03:29.4790744Z             },
2026-06-18T12:03:29.4790835Z             {
2026-06-18T12:03:29.4790950Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4791044Z               "line": 162
2026-06-18T12:03:29.4791140Z             },
2026-06-18T12:03:29.4791227Z             {
2026-06-18T12:03:29.4791349Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4791453Z               "line": 179
2026-06-18T12:03:29.4791539Z             },
2026-06-18T12:03:29.4791634Z             {
2026-06-18T12:03:29.4791742Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4791838Z               "line": 201
2026-06-18T12:03:29.4791924Z             },
2026-06-18T12:03:29.4792009Z             {
2026-06-18T12:03:29.4792133Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4792224Z               "line": 212
2026-06-18T12:03:29.4792319Z             },
2026-06-18T12:03:29.4792405Z             {
2026-06-18T12:03:29.4792525Z               "path": "crates/spt-live/src/digest.rs",
2026-06-18T12:03:29.4792605Z               "line": 223
2026-06-18T12:03:29.4792705Z             },
2026-06-18T12:03:29.4792801Z             {
2026-06-18T12:03:29.4792920Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4793005Z               "line": 1322
2026-06-18T12:03:29.4793091Z             },
2026-06-18T12:03:29.4793188Z             {
2026-06-18T12:03:29.4793325Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4793426Z               "line": 1365
2026-06-18T12:03:29.4793512Z             },
2026-06-18T12:03:29.4793592Z             {
2026-06-18T12:03:29.4793721Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4793818Z               "line": 606
2026-06-18T12:03:29.4793911Z             },
2026-06-18T12:03:29.4794002Z             {
2026-06-18T12:03:29.4794128Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4794235Z               "line": 634
2026-06-18T12:03:29.4794320Z             },
2026-06-18T12:03:29.4794411Z             {
2026-06-18T12:03:29.4794531Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4794635Z               "line": 646
2026-06-18T12:03:29.4794721Z             },
2026-06-18T12:03:29.4794817Z             {
2026-06-18T12:03:29.4794931Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4795017Z               "line": 669
2026-06-18T12:03:29.4795113Z             },
2026-06-18T12:03:29.4795199Z             {
2026-06-18T12:03:29.4795312Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4795404Z               "line": 8273
2026-06-18T12:03:29.4795494Z             },
2026-06-18T12:03:29.4795589Z             {
2026-06-18T12:03:29.4795695Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4795790Z               "line": 8331
2026-06-18T12:03:29.4795889Z             }
2026-06-18T12:03:29.4795981Z           ]
2026-06-18T12:03:29.4796067Z         }
2026-06-18T12:03:29.4796161Z       }
2026-06-18T12:03:29.4796256Z     },
2026-06-18T12:03:29.4796339Z     {
2026-06-18T12:03:29.4796447Z       "id": "REQ-TERM-6",
2026-06-18T12:03:29.4797588Z       "title": "Thread-spanning digest across session boundaries: a per-endpoint session ledger (`<perch>/sessions.log`) appended at first bind and by `api boundary` on `/clear`|`/compact` session rotation, the digest enumerating the last K sessions so its rolling window bridges a boundary, and a distinctive in-timeline boundary marker (DigestEntry::Boundary). The digest follows the live-agent thread, not a single session.",
2026-06-18T12:03:29.4797779Z       "requiredStages": [
2026-06-18T12:03:29.4797879Z         "impl",
2026-06-18T12:03:29.4797970Z         "unit",
2026-06-18T12:03:29.4798060Z         "int"
2026-06-18T12:03:29.4798146Z       ],
2026-06-18T12:03:29.4798232Z       "stages": {
2026-06-18T12:03:29.4798399Z         "doc": {
2026-06-18T12:03:29.4798489Z           "complete": false,
2026-06-18T12:03:29.4798586Z           "evidence": []
2026-06-18T12:03:29.4798671Z         },
2026-06-18T12:03:29.4798762Z         "impl": {
2026-06-18T12:03:29.4798857Z           "complete": true,
2026-06-18T12:03:29.4799028Z           "evidence": [
2026-06-18T12:03:29.4799114Z             {
2026-06-18T12:03:29.4799239Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4799348Z               "line": 132
2026-06-18T12:03:29.4799442Z             },
2026-06-18T12:03:29.4799566Z             {
2026-06-18T12:03:29.4799693Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4799797Z               "line": 187
2026-06-18T12:03:29.4799888Z             },
2026-06-18T12:03:29.4799975Z             {
2026-06-18T12:03:29.4800102Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T12:03:29.4800194Z               "line": 17
2026-06-18T12:03:29.4800274Z             },
2026-06-18T12:03:29.4800379Z             {
2026-06-18T12:03:29.4800499Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T12:03:29.4800599Z               "line": 96
2026-06-18T12:03:29.4800680Z             },
2026-06-18T12:03:29.4800765Z             {
2026-06-18T12:03:29.4800895Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4800990Z               "line": 319
2026-06-18T12:03:29.4801080Z             },
2026-06-18T12:03:29.4801157Z             {
2026-06-18T12:03:29.4801284Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4801376Z               "line": 396
2026-06-18T12:03:29.4801458Z             }
2026-06-18T12:03:29.4801548Z           ]
2026-06-18T12:03:29.4801643Z         },
2026-06-18T12:03:29.4801739Z         "int": {
2026-06-18T12:03:29.4801839Z           "complete": true,
2026-06-18T12:03:29.4801938Z           "evidence": [
2026-06-18T12:03:29.4802023Z             {
2026-06-18T12:03:29.4802190Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-18T12:03:29.4802283Z               "line": 18
2026-06-18T12:03:29.4802373Z             }
2026-06-18T12:03:29.4802470Z           ]
2026-06-18T12:03:29.4802546Z         },
2026-06-18T12:03:29.4802636Z         "unit": {
2026-06-18T12:03:29.4802732Z           "complete": true,
2026-06-18T12:03:29.4802827Z           "evidence": [
2026-06-18T12:03:29.4802908Z             {
2026-06-18T12:03:29.4803042Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T12:03:29.4803141Z               "line": 126
2026-06-18T12:03:29.4803218Z             },
2026-06-18T12:03:29.4803303Z             {
2026-06-18T12:03:29.4803429Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T12:03:29.4803523Z               "line": 141
2026-06-18T12:03:29.4803604Z             },
2026-06-18T12:03:29.4803695Z             {
2026-06-18T12:03:29.4803813Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T12:03:29.4803904Z               "line": 157
2026-06-18T12:03:29.4804005Z             },
2026-06-18T12:03:29.4804086Z             {
2026-06-18T12:03:29.4804214Z               "path": "crates/spt-store/src/sessions.rs",
2026-06-18T12:03:29.4804296Z               "line": 175
2026-06-18T12:03:29.4804387Z             },
2026-06-18T12:03:29.4804476Z             {
2026-06-18T12:03:29.4804601Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4804688Z               "line": 738
2026-06-18T12:03:29.4804767Z             },
2026-06-18T12:03:29.4804857Z             {
2026-06-18T12:03:29.4805078Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4805171Z               "line": 759
2026-06-18T12:03:29.4805257Z             },
2026-06-18T12:03:29.4805344Z             {
2026-06-18T12:03:29.4805476Z               "path": "crates/spt/src/api/reporting.rs",
2026-06-18T12:03:29.4805567Z               "line": 722
2026-06-18T12:03:29.4805668Z             }
2026-06-18T12:03:29.4805754Z           ]
2026-06-18T12:03:29.4805858Z         }
2026-06-18T12:03:29.4806054Z       }
2026-06-18T12:03:29.4806144Z     },
2026-06-18T12:03:29.4806236Z     {
2026-06-18T12:03:29.4806331Z       "id": "REQ-TERM-7",
2026-06-18T12:03:29.4807519Z       "title": "Two-origin digest merge: spt-owned context-injection entries (psyche_download | echo_mirror | owl_message) appended by spt to the endpoint `digest.log`, timestamp-interleaved with the adapter's extracted activity records into one ordered timeline, via a distinct context-injection record category. Data model only this milestone; GUI collapse/expand and the echo-reads-digest delta loop are deferred to the surfaces that consume them.",
2026-06-18T12:03:29.4807625Z       "requiredStages": [
2026-06-18T12:03:29.4807705Z         "impl",
2026-06-18T12:03:29.4807800Z         "unit",
2026-06-18T12:03:29.4807877Z         "int"
2026-06-18T12:03:29.4807972Z       ],
2026-06-18T12:03:29.4808063Z       "stages": {
2026-06-18T12:03:29.4808148Z         "doc": {
2026-06-18T12:03:29.4808249Z           "complete": false,
2026-06-18T12:03:29.4808353Z           "evidence": []
2026-06-18T12:03:29.4808434Z         },
2026-06-18T12:03:29.4808517Z         "impl": {
2026-06-18T12:03:29.4808621Z           "complete": true,
2026-06-18T12:03:29.4808716Z           "evidence": [
2026-06-18T12:03:29.4808797Z             {
2026-06-18T12:03:29.4808931Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4809098Z               "line": 133
2026-06-18T12:03:29.4809198Z             },
2026-06-18T12:03:29.4809278Z             {
2026-06-18T12:03:29.4809408Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4809499Z               "line": 326
2026-06-18T12:03:29.4809588Z             },
2026-06-18T12:03:29.4809679Z             {
2026-06-18T12:03:29.4809800Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T12:03:29.4809898Z               "line": 15
2026-06-18T12:03:29.4809988Z             },
2026-06-18T12:03:29.4810083Z             {
2026-06-18T12:03:29.4810201Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T12:03:29.4810305Z               "line": 32
2026-06-18T12:03:29.4810396Z             },
2026-06-18T12:03:29.4810487Z             {
2026-06-18T12:03:29.4810610Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T12:03:29.4810705Z               "line": 49
2026-06-18T12:03:29.4810783Z             },
2026-06-18T12:03:29.4810878Z             {
2026-06-18T12:03:29.4811006Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4811107Z               "line": 286
2026-06-18T12:03:29.4811202Z             },
2026-06-18T12:03:29.4811291Z             {
2026-06-18T12:03:29.4811417Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4811516Z               "line": 320
2026-06-18T12:03:29.4811611Z             }
2026-06-18T12:03:29.4811694Z           ]
2026-06-18T12:03:29.4811775Z         },
2026-06-18T12:03:29.4811859Z         "int": {
2026-06-18T12:03:29.4811965Z           "complete": true,
2026-06-18T12:03:29.4812056Z           "evidence": [
2026-06-18T12:03:29.4812141Z             {
2026-06-18T12:03:29.4812294Z               "path": "crates/spt-daemon/tests/two_origin_spanning.rs",
2026-06-18T12:03:29.4812390Z               "line": 19
2026-06-18T12:03:29.4812484Z             }
2026-06-18T12:03:29.4812569Z           ]
2026-06-18T12:03:29.4812655Z         },
2026-06-18T12:03:29.4812740Z         "unit": {
2026-06-18T12:03:29.4812838Z           "complete": true,
2026-06-18T12:03:29.4812929Z           "evidence": [
2026-06-18T12:03:29.4813020Z             {
2026-06-18T12:03:29.4813253Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4813350Z               "line": 455
2026-06-18T12:03:29.4813431Z             },
2026-06-18T12:03:29.4813505Z             {
2026-06-18T12:03:29.4813636Z               "path": "crates/spt-daemon/src/digest.rs",
2026-06-18T12:03:29.4813725Z               "line": 566
2026-06-18T12:03:29.4813811Z             },
2026-06-18T12:03:29.4813902Z             {
2026-06-18T12:03:29.4814117Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T12:03:29.4814207Z               "line": 58
2026-06-18T12:03:29.4814294Z             },
2026-06-18T12:03:29.4814383Z             {
2026-06-18T12:03:29.4814508Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T12:03:29.4814594Z               "line": 77
2026-06-18T12:03:29.4814684Z             },
2026-06-18T12:03:29.4814765Z             {
2026-06-18T12:03:29.4814890Z               "path": "crates/spt-live/src/inject.rs",
2026-06-18T12:03:29.4814985Z               "line": 87
2026-06-18T12:03:29.4815075Z             },
2026-06-18T12:03:29.4815161Z             {
2026-06-18T12:03:29.4815281Z               "path": "crates/spt-store/src/history.rs",
2026-06-18T12:03:29.4815379Z               "line": 94
2026-06-18T12:03:29.4815464Z             },
2026-06-18T12:03:29.4815560Z             {
2026-06-18T12:03:29.4815684Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4815775Z               "line": 691
2026-06-18T12:03:29.4815870Z             },
2026-06-18T12:03:29.4815951Z             {
2026-06-18T12:03:29.4816070Z               "path": "crates/spt-term/src/projection.rs",
2026-06-18T12:03:29.4816166Z               "line": 716
2026-06-18T12:03:29.4816271Z             }
2026-06-18T12:03:29.4816356Z           ]
2026-06-18T12:03:29.4816452Z         }
2026-06-18T12:03:29.4816544Z       }
2026-06-18T12:03:29.4816633Z     },
2026-06-18T12:03:29.4816728Z     {
2026-06-18T12:03:29.4816825Z       "id": "REQ-UPD-1",
2026-06-18T12:03:29.4816967Z       "title": "Peer-propagated update over P2P",
2026-06-18T12:03:29.4817067Z       "requiredStages": [
2026-06-18T12:03:29.4817164Z         "impl",
2026-06-18T12:03:29.4817253Z         "unit",
2026-06-18T12:03:29.4817343Z         "int"
2026-06-18T12:03:29.4817440Z       ],
2026-06-18T12:03:29.4817521Z       "stages": {
2026-06-18T12:03:29.4817610Z         "doc": {
2026-06-18T12:03:29.4817709Z           "complete": false,
2026-06-18T12:03:29.4817810Z           "evidence": []
2026-06-18T12:03:29.4817913Z         },
2026-06-18T12:03:29.4817993Z         "impl": {
2026-06-18T12:03:29.4818098Z           "complete": true,
2026-06-18T12:03:29.4818195Z           "evidence": [
2026-06-18T12:03:29.4818289Z             {
2026-06-18T12:03:29.4818413Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4818514Z               "line": 28
2026-06-18T12:03:29.4818603Z             },
2026-06-18T12:03:29.4821556Z             {
2026-06-18T12:03:29.4821738Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4821838Z               "line": 103
2026-06-18T12:03:29.4821924Z             },
2026-06-18T12:03:29.4822006Z             {
2026-06-18T12:03:29.4822153Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4822254Z               "line": 342
2026-06-18T12:03:29.4822335Z             },
2026-06-18T12:03:29.4822434Z             {
2026-06-18T12:03:29.4822559Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4822664Z               "line": 22
2026-06-18T12:03:29.4822748Z             },
2026-06-18T12:03:29.4822830Z             {
2026-06-18T12:03:29.4822964Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4823049Z               "line": 207
2026-06-18T12:03:29.4823129Z             },
2026-06-18T12:03:29.4823215Z             {
2026-06-18T12:03:29.4823333Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4823417Z               "line": 283
2026-06-18T12:03:29.4823508Z             },
2026-06-18T12:03:29.4823746Z             {
2026-06-18T12:03:29.4823881Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4823976Z               "line": 340
2026-06-18T12:03:29.4824056Z             },
2026-06-18T12:03:29.4824147Z             {
2026-06-18T12:03:29.4824272Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.4824353Z               "line": 37
2026-06-18T12:03:29.4824448Z             }
2026-06-18T12:03:29.4824624Z           ]
2026-06-18T12:03:29.4824714Z         },
2026-06-18T12:03:29.4824796Z         "int": {
2026-06-18T12:03:29.4824901Z           "complete": true,
2026-06-18T12:03:29.4825001Z           "evidence": [
2026-06-18T12:03:29.4825092Z             {
2026-06-18T12:03:29.4825235Z               "path": "crates/spt-daemon/tests/dispatch.rs",
2026-06-18T12:03:29.4825321Z               "line": 207
2026-06-18T12:03:29.4825402Z             },
2026-06-18T12:03:29.4825484Z             {
2026-06-18T12:03:29.4825615Z               "path": "crates/spt-daemon/tests/twohost.rs",
2026-06-18T12:03:29.4825722Z               "line": 1081
2026-06-18T12:03:29.4825808Z             }
2026-06-18T12:03:29.4825902Z           ]
2026-06-18T12:03:29.4825992Z         },
2026-06-18T12:03:29.4826082Z         "unit": {
2026-06-18T12:03:29.4826178Z           "complete": true,
2026-06-18T12:03:29.4826282Z           "evidence": [
2026-06-18T12:03:29.4826372Z             {
2026-06-18T12:03:29.4826497Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4826597Z               "line": 490
2026-06-18T12:03:29.4826687Z             },
2026-06-18T12:03:29.4826779Z             {
2026-06-18T12:03:29.4826898Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4826993Z               "line": 616
2026-06-18T12:03:29.4827070Z             },
2026-06-18T12:03:29.4827160Z             {
2026-06-18T12:03:29.4827303Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T12:03:29.4827385Z               "line": 277
2026-06-18T12:03:29.4827475Z             },
2026-06-18T12:03:29.4827556Z             {
2026-06-18T12:03:29.4827685Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.4827780Z               "line": 124
2026-06-18T12:03:29.4827865Z             },
2026-06-18T12:03:29.4827952Z             {
2026-06-18T12:03:29.4828067Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.4828156Z               "line": 200
2026-06-18T12:03:29.4828241Z             }
2026-06-18T12:03:29.4828332Z           ]
2026-06-18T12:03:29.4828427Z         }
2026-06-18T12:03:29.4828501Z       }
2026-06-18T12:03:29.4828596Z     },
2026-06-18T12:03:29.4828678Z     {
2026-06-18T12:03:29.4828783Z       "id": "REQ-UPD-2",
2026-06-18T12:03:29.4829031Z       "title": "All binaries signature-verified before handoff",
2026-06-18T12:03:29.4829140Z       "requiredStages": [
2026-06-18T12:03:29.4829239Z         "impl",
2026-06-18T12:03:29.4829322Z         "unit"
2026-06-18T12:03:29.4829412Z       ],
2026-06-18T12:03:29.4829502Z       "stages": {
2026-06-18T12:03:29.4829598Z         "doc": {
2026-06-18T12:03:29.4829684Z           "complete": false,
2026-06-18T12:03:29.4829784Z           "evidence": []
2026-06-18T12:03:29.4829865Z         },
2026-06-18T12:03:29.4829956Z         "impl": {
2026-06-18T12:03:29.4830060Z           "complete": true,
2026-06-18T12:03:29.4830156Z           "evidence": [
2026-06-18T12:03:29.4830233Z             {
2026-06-18T12:03:29.4830365Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4830461Z               "line": 343
2026-06-18T12:03:29.4830557Z             },
2026-06-18T12:03:29.4830638Z             {
2026-06-18T12:03:29.4830771Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4830863Z               "line": 476
2026-06-18T12:03:29.4830939Z             },
2026-06-18T12:03:29.4831028Z             {
2026-06-18T12:03:29.4831151Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4831359Z               "line": 29
2026-06-18T12:03:29.4831444Z             },
2026-06-18T12:03:29.4831525Z             {
2026-06-18T12:03:29.4831650Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4831750Z               "line": 271
2026-06-18T12:03:29.4831831Z             },
2026-06-18T12:03:29.4831917Z             {
2026-06-18T12:03:29.4832040Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4832126Z               "line": 288
2026-06-18T12:03:29.4832318Z             },
2026-06-18T12:03:29.4832408Z             {
2026-06-18T12:03:29.4832533Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4832618Z               "line": 408
2026-06-18T12:03:29.4832699Z             },
2026-06-18T12:03:29.4832780Z             {
2026-06-18T12:03:29.4832904Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4832989Z               "line": 558
2026-06-18T12:03:29.4833070Z             },
2026-06-18T12:03:29.4833158Z             {
2026-06-18T12:03:29.4833290Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4833380Z               "line": 155
2026-06-18T12:03:29.4833463Z             }
2026-06-18T12:03:29.4833548Z           ]
2026-06-18T12:03:29.4833633Z         },
2026-06-18T12:03:29.4833718Z         "int": {
2026-06-18T12:03:29.4833823Z           "complete": false,
2026-06-18T12:03:29.4833916Z           "evidence": []
2026-06-18T12:03:29.4834011Z         },
2026-06-18T12:03:29.4834112Z         "unit": {
2026-06-18T12:03:29.4834208Z           "complete": true,
2026-06-18T12:03:29.4834307Z           "evidence": [
2026-06-18T12:03:29.4834392Z             {
2026-06-18T12:03:29.4834522Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4834626Z               "line": 750
2026-06-18T12:03:29.4834707Z             },
2026-06-18T12:03:29.4834798Z             {
2026-06-18T12:03:29.4834917Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4835018Z               "line": 811
2026-06-18T12:03:29.4835113Z             },
2026-06-18T12:03:29.4835198Z             {
2026-06-18T12:03:29.4835327Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4835419Z               "line": 825
2026-06-18T12:03:29.4835509Z             },
2026-06-18T12:03:29.4835590Z             {
2026-06-18T12:03:29.4835724Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4835814Z               "line": 841
2026-06-18T12:03:29.4835919Z             },
2026-06-18T12:03:29.4836015Z             {
2026-06-18T12:03:29.4836138Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4836233Z               "line": 932
2026-06-18T12:03:29.4836320Z             },
2026-06-18T12:03:29.4836411Z             {
2026-06-18T12:03:29.4836532Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4836628Z               "line": 414
2026-06-18T12:03:29.4836720Z             },
2026-06-18T12:03:29.4836796Z             {
2026-06-18T12:03:29.4836919Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4837015Z               "line": 427
2026-06-18T12:03:29.4837111Z             },
2026-06-18T12:03:29.4837195Z             {
2026-06-18T12:03:29.4837335Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T12:03:29.4837440Z               "line": 410
2026-06-18T12:03:29.4837524Z             }
2026-06-18T12:03:29.4837611Z           ]
2026-06-18T12:03:29.4837697Z         }
2026-06-18T12:03:29.4837787Z       }
2026-06-18T12:03:29.4837863Z     },
2026-06-18T12:03:29.4837950Z     {
2026-06-18T12:03:29.4838045Z       "id": "REQ-UPD-3",
2026-06-18T12:03:29.4838231Z       "title": "No endpoint process terminates/suspends during self-update",
2026-06-18T12:03:29.4838331Z       "requiredStages": [
2026-06-18T12:03:29.4838420Z         "impl",
2026-06-18T12:03:29.4838507Z         "unit",
2026-06-18T12:03:29.4838589Z         "int"
2026-06-18T12:03:29.4838674Z       ],
2026-06-18T12:03:29.4838763Z       "stages": {
2026-06-18T12:03:29.4839010Z         "doc": {
2026-06-18T12:03:29.4839104Z           "complete": false,
2026-06-18T12:03:29.4839190Z           "evidence": []
2026-06-18T12:03:29.4839277Z         },
2026-06-18T12:03:29.4839367Z         "impl": {
2026-06-18T12:03:29.4839485Z           "complete": true,
2026-06-18T12:03:29.4839587Z           "evidence": [
2026-06-18T12:03:29.4839668Z             {
2026-06-18T12:03:29.4839800Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4839992Z               "line": 40
2026-06-18T12:03:29.4840076Z             },
2026-06-18T12:03:29.4840154Z             {
2026-06-18T12:03:29.4840282Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4840372Z               "line": 87
2026-06-18T12:03:29.4840448Z             },
2026-06-18T12:03:29.4840540Z             {
2026-06-18T12:03:29.4840655Z               "path": "crates/spt-daemon/src/brain.rs",
2026-06-18T12:03:29.4840754Z               "line": 994
2026-06-18T12:03:29.4840846Z             },
2026-06-18T12:03:29.4840940Z             {
2026-06-18T12:03:29.4841074Z               "path": "crates/spt-daemon/src/broker.rs",
2026-06-18T12:03:29.4841170Z               "line": 1160
2026-06-18T12:03:29.4841259Z             },
2026-06-18T12:03:29.4841340Z             {
2026-06-18T12:03:29.4841461Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4841555Z               "line": 26
2026-06-18T12:03:29.4841630Z             },
2026-06-18T12:03:29.4841730Z             {
2026-06-18T12:03:29.4841854Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4841952Z               "line": 114
2026-06-18T12:03:29.4842037Z             },
2026-06-18T12:03:29.4842134Z             {
2026-06-18T12:03:29.4842248Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4842338Z               "line": 246
2026-06-18T12:03:29.4842420Z             },
2026-06-18T12:03:29.4842506Z             {
2026-06-18T12:03:29.4842610Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4842711Z               "line": 2313
2026-06-18T12:03:29.4842797Z             }
2026-06-18T12:03:29.4842882Z           ]
2026-06-18T12:03:29.4842963Z         },
2026-06-18T12:03:29.4843059Z         "int": {
2026-06-18T12:03:29.4843158Z           "complete": true,
2026-06-18T12:03:29.4843259Z           "evidence": [
2026-06-18T12:03:29.4843340Z             {
2026-06-18T12:03:29.4843473Z               "path": "crates/spt/tests/brain_survive.rs",
2026-06-18T12:03:29.4843573Z               "line": 58
2026-06-18T12:03:29.4843655Z             }
2026-06-18T12:03:29.4843737Z           ]
2026-06-18T12:03:29.4843821Z         },
2026-06-18T12:03:29.4843917Z         "unit": {
2026-06-18T12:03:29.4844004Z           "complete": true,
2026-06-18T12:03:29.4844099Z           "evidence": [
2026-06-18T12:03:29.4844188Z             {
2026-06-18T12:03:29.4844321Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4844416Z               "line": 532
2026-06-18T12:03:29.4844505Z             },
2026-06-18T12:03:29.4844590Z             {
2026-06-18T12:03:29.4844715Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4844815Z               "line": 584
2026-06-18T12:03:29.4844914Z             },
2026-06-18T12:03:29.4845001Z             {
2026-06-18T12:03:29.4845125Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4845215Z               "line": 652
2026-06-18T12:03:29.4845312Z             },
2026-06-18T12:03:29.4845397Z             {
2026-06-18T12:03:29.4845525Z               "path": "crates/spt-daemon/src/brainproc.rs",
2026-06-18T12:03:29.4845617Z               "line": 1102
2026-06-18T12:03:29.4845697Z             },
2026-06-18T12:03:29.4845783Z             {
2026-06-18T12:03:29.4845902Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4845993Z               "line": 271
2026-06-18T12:03:29.4846078Z             },
2026-06-18T12:03:29.4846164Z             {
2026-06-18T12:03:29.4846402Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4846488Z               "line": 295
2026-06-18T12:03:29.4846585Z             },
2026-06-18T12:03:29.4846674Z             {
2026-06-18T12:03:29.4846794Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4846885Z               "line": 316
2026-06-18T12:03:29.4846985Z             },
2026-06-18T12:03:29.4847074Z             {
2026-06-18T12:03:29.4847193Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4847365Z               "line": 332
2026-06-18T12:03:29.4847455Z             }
2026-06-18T12:03:29.4847546Z           ]
2026-06-18T12:03:29.4847628Z         }
2026-06-18T12:03:29.4847713Z       }
2026-06-18T12:03:29.4847798Z     },
2026-06-18T12:03:29.4847876Z     {
2026-06-18T12:03:29.4847966Z       "id": "REQ-UPD-4",
2026-06-18T12:03:29.4848161Z       "title": "Update gated on user confirmation by default; opt-in full-auto",
2026-06-18T12:03:29.4848266Z       "requiredStages": [
2026-06-18T12:03:29.4848357Z         "impl",
2026-06-18T12:03:29.4848447Z         "unit"
2026-06-18T12:03:29.4848534Z       ],
2026-06-18T12:03:29.4848619Z       "stages": {
2026-06-18T12:03:29.4848719Z         "doc": {
2026-06-18T12:03:29.4848811Z           "complete": false,
2026-06-18T12:03:29.4848915Z           "evidence": []
2026-06-18T12:03:29.4849105Z         },
2026-06-18T12:03:29.4849201Z         "impl": {
2026-06-18T12:03:29.4849304Z           "complete": true,
2026-06-18T12:03:29.4849413Z           "evidence": [
2026-06-18T12:03:29.4849514Z             {
2026-06-18T12:03:29.4849645Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4849750Z               "line": 41
2026-06-18T12:03:29.4849832Z             },
2026-06-18T12:03:29.4849927Z             {
2026-06-18T12:03:29.4850055Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4850137Z               "line": 88
2026-06-18T12:03:29.4850218Z             },
2026-06-18T12:03:29.4850303Z             {
2026-06-18T12:03:29.4850438Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T12:03:29.4850523Z               "line": 23
2026-06-18T12:03:29.4850622Z             },
2026-06-18T12:03:29.4850704Z             {
2026-06-18T12:03:29.4850828Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T12:03:29.4850928Z               "line": 56
2026-06-18T12:03:29.4851014Z             },
2026-06-18T12:03:29.4851105Z             {
2026-06-18T12:03:29.4851229Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T12:03:29.4851319Z               "line": 77
2026-06-18T12:03:29.4851411Z             },
2026-06-18T12:03:29.4851495Z             {
2026-06-18T12:03:29.4851614Z               "path": "crates/spt-daemon/src/lifecycle.rs",
2026-06-18T12:03:29.4851706Z               "line": 236
2026-06-18T12:03:29.4851787Z             },
2026-06-18T12:03:29.4851872Z             {
2026-06-18T12:03:29.4852007Z               "path": "crates/spt-daemon/src/notif.rs",
2026-06-18T12:03:29.4852111Z               "line": 108
2026-06-18T12:03:29.4852205Z             },
2026-06-18T12:03:29.4852285Z             {
2026-06-18T12:03:29.4852410Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.4852507Z               "line": 258
2026-06-18T12:03:29.4852598Z             },
2026-06-18T12:03:29.4852675Z             {
2026-06-18T12:03:29.4852799Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4852889Z               "line": 2312
2026-06-18T12:03:29.4852975Z             }
2026-06-18T12:03:29.4853061Z           ]
2026-06-18T12:03:29.4853147Z         },
2026-06-18T12:03:29.4853232Z         "int": {
2026-06-18T12:03:29.4853334Z           "complete": false,
2026-06-18T12:03:29.4853443Z           "evidence": []
2026-06-18T12:03:29.4853537Z         },
2026-06-18T12:03:29.4853643Z         "unit": {
2026-06-18T12:03:29.4853747Z           "complete": true,
2026-06-18T12:03:29.4853852Z           "evidence": [
2026-06-18T12:03:29.4853949Z             {
2026-06-18T12:03:29.4854205Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4854307Z               "line": 580
2026-06-18T12:03:29.4854395Z             },
2026-06-18T12:03:29.4854491Z             {
2026-06-18T12:03:29.4854622Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4854710Z               "line": 705
2026-06-18T12:03:29.4854805Z             },
2026-06-18T12:03:29.4854886Z             {
2026-06-18T12:03:29.4855112Z               "path": "crates/spt-daemon/src/config.rs",
2026-06-18T12:03:29.4855208Z               "line": 384
2026-06-18T12:03:29.4855294Z             },
2026-06-18T12:03:29.4855379Z             {
2026-06-18T12:03:29.4855508Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T12:03:29.4855609Z               "line": 102
2026-06-18T12:03:29.4855694Z             },
2026-06-18T12:03:29.4855784Z             {
2026-06-18T12:03:29.4855909Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T12:03:29.4856023Z               "line": 123
2026-06-18T12:03:29.4856128Z             },
2026-06-18T12:03:29.4856220Z             {
2026-06-18T12:03:29.4856348Z               "path": "crates/spt-daemon/src/consent.rs",
2026-06-18T12:03:29.4856443Z               "line": 142
2026-06-18T12:03:29.4856535Z             },
2026-06-18T12:03:29.4856619Z             {
2026-06-18T12:03:29.4856734Z               "path": "crates/spt-store/src/info.rs",
2026-06-18T12:03:29.4856830Z               "line": 556
2026-06-18T12:03:29.4856929Z             },
2026-06-18T12:03:29.4857015Z             {
2026-06-18T12:03:29.4857135Z               "path": "crates/spt-store/src/perch.rs",
2026-06-18T12:03:29.4857230Z               "line": 566
2026-06-18T12:03:29.4857311Z             },
2026-06-18T12:03:29.4857407Z             {
2026-06-18T12:03:29.4857517Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4857615Z               "line": 8026
2026-06-18T12:03:29.4857710Z             }
2026-06-18T12:03:29.4857787Z           ]
2026-06-18T12:03:29.4857878Z         }
2026-06-18T12:03:29.4857968Z       }
2026-06-18T12:03:29.4858058Z     },
2026-06-18T12:03:29.4858140Z     {
2026-06-18T12:03:29.4858240Z       "id": "REQ-UPD-5",
2026-06-18T12:03:29.4858397Z       "title": "spt-core ripple-updates registered adapters",
2026-06-18T12:03:29.4858497Z       "requiredStages": [
2026-06-18T12:03:29.4858592Z         "impl",
2026-06-18T12:03:29.4858678Z         "unit"
2026-06-18T12:03:29.4858770Z       ],
2026-06-18T12:03:29.4858864Z       "stages": {
2026-06-18T12:03:29.4859027Z         "doc": {
2026-06-18T12:03:29.4859132Z           "complete": false,
2026-06-18T12:03:29.4859232Z           "evidence": []
2026-06-18T12:03:29.4859317Z         },
2026-06-18T12:03:29.4859418Z         "impl": {
2026-06-18T12:03:29.4859517Z           "complete": true,
2026-06-18T12:03:29.4859617Z           "evidence": [
2026-06-18T12:03:29.4859700Z             {
2026-06-18T12:03:29.4859851Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4859941Z               "line": 27
2026-06-18T12:03:29.4860022Z             },
2026-06-18T12:03:29.4860121Z             {
2026-06-18T12:03:29.4860257Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4860349Z               "line": 87
2026-06-18T12:03:29.4860445Z             },
2026-06-18T12:03:29.4860534Z             {
2026-06-18T12:03:29.4860664Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4860759Z               "line": 145
2026-06-18T12:03:29.4860854Z             },
2026-06-18T12:03:29.4860944Z             {
2026-06-18T12:03:29.4861064Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4861169Z               "line": 492
2026-06-18T12:03:29.4861264Z             },
2026-06-18T12:03:29.4861351Z             {
2026-06-18T12:03:29.4861484Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4861574Z               "line": 546
2026-06-18T12:03:29.4861670Z             }
2026-06-18T12:03:29.4861884Z           ]
2026-06-18T12:03:29.4861980Z         },
2026-06-18T12:03:29.4862074Z         "int": {
2026-06-18T12:03:29.4862174Z           "complete": false,
2026-06-18T12:03:29.4862276Z           "evidence": []
2026-06-18T12:03:29.4862361Z         },
2026-06-18T12:03:29.4862447Z         "unit": {
2026-06-18T12:03:29.4862548Z           "complete": true,
2026-06-18T12:03:29.4862648Z           "evidence": [
2026-06-18T12:03:29.4862741Z             {
2026-06-18T12:03:29.4862960Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4863054Z               "line": 272
2026-06-18T12:03:29.4863144Z             },
2026-06-18T12:03:29.4863230Z             {
2026-06-18T12:03:29.4863359Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4863454Z               "line": 286
2026-06-18T12:03:29.4863540Z             },
2026-06-18T12:03:29.4863621Z             {
2026-06-18T12:03:29.4863759Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4863855Z               "line": 300
2026-06-18T12:03:29.4863950Z             },
2026-06-18T12:03:29.4864041Z             {
2026-06-18T12:03:29.4864170Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4864265Z               "line": 314
2026-06-18T12:03:29.4864356Z             },
2026-06-18T12:03:29.4864437Z             {
2026-06-18T12:03:29.4864566Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4864675Z               "line": 348
2026-06-18T12:03:29.4864761Z             },
2026-06-18T12:03:29.4864847Z             {
2026-06-18T12:03:29.4864979Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4865066Z               "line": 1012
2026-06-18T12:03:29.4865148Z             }
2026-06-18T12:03:29.4865233Z           ]
2026-06-18T12:03:29.4865322Z         }
2026-06-18T12:03:29.4865402Z       }
2026-06-18T12:03:29.4865489Z     },
2026-06-18T12:03:29.4865574Z     {
2026-06-18T12:03:29.4865672Z       "id": "REQ-UPD-6",
2026-06-18T12:03:29.4866507Z       "title": "Platform-targeted update sets and debug rollout: signed multi-platform update metadata, recipient platform selection, channel-scoped monotonic counters, debug-channel opt-in via release-key overlay, local staging plus pull-based peer propagation, and maintainer-only convergence tooling (ADR-0016)",
2026-06-18T12:03:29.4866611Z       "requiredStages": [
2026-06-18T12:03:29.4866703Z         "doc",
2026-06-18T12:03:29.4866808Z         "impl",
2026-06-18T12:03:29.4866898Z         "unit",
2026-06-18T12:03:29.4866993Z         "int"
2026-06-18T12:03:29.4867081Z       ],
2026-06-18T12:03:29.4867179Z       "stages": {
2026-06-18T12:03:29.4867275Z         "doc": {
2026-06-18T12:03:29.4867362Z           "complete": true,
2026-06-18T12:03:29.4867461Z           "evidence": [
2026-06-18T12:03:29.4867551Z             {
2026-06-18T12:03:29.4867700Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-18T12:03:29.4867795Z               "line": 3
2026-06-18T12:03:29.4867890Z             },
2026-06-18T12:03:29.4867977Z             {
2026-06-18T12:03:29.4868091Z               "path": "docs/DEBUG-ROLLOUT.md",
2026-06-18T12:03:29.4868189Z               "line": 3
2026-06-18T12:03:29.4868270Z             },
2026-06-18T12:03:29.4868366Z             {
2026-06-18T12:03:29.4868532Z               "path": "docs/adr/0016-platform-targeted-update-sets.md",
2026-06-18T12:03:29.4868628Z               "line": 3
2026-06-18T12:03:29.4868729Z             }
2026-06-18T12:03:29.4868814Z           ]
2026-06-18T12:03:29.4868899Z         },
2026-06-18T12:03:29.4869048Z         "impl": {
2026-06-18T12:03:29.4869152Z           "complete": true,
2026-06-18T12:03:29.4869248Z           "evidence": [
2026-06-18T12:03:29.4869339Z             {
2026-06-18T12:03:29.4869472Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4869562Z               "line": 76
2026-06-18T12:03:29.4869654Z             },
2026-06-18T12:03:29.4869739Z             {
2026-06-18T12:03:29.4869965Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4870058Z               "line": 212
2026-06-18T12:03:29.4870149Z             },
2026-06-18T12:03:29.4870236Z             {
2026-06-18T12:03:29.4870359Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4870458Z               "line": 69
2026-06-18T12:03:29.4870544Z             },
2026-06-18T12:03:29.4870634Z             {
2026-06-18T12:03:29.4870761Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4870962Z               "line": 133
2026-06-18T12:03:29.4871061Z             },
2026-06-18T12:03:29.4871151Z             {
2026-06-18T12:03:29.4871281Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4871376Z               "line": 243
2026-06-18T12:03:29.4871475Z             },
2026-06-18T12:03:29.4871567Z             {
2026-06-18T12:03:29.4871695Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4871785Z               "line": 406
2026-06-18T12:03:29.4871882Z             },
2026-06-18T12:03:29.4871968Z             {
2026-06-18T12:03:29.4872095Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4872197Z               "line": 534
2026-06-18T12:03:29.4872287Z             },
2026-06-18T12:03:29.4872382Z             {
2026-06-18T12:03:29.4872508Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4872587Z               "line": 548
2026-06-18T12:03:29.4872692Z             },
2026-06-18T12:03:29.4872778Z             {
2026-06-18T12:03:29.4872907Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4872992Z               "line": 603
2026-06-18T12:03:29.4873074Z             },
2026-06-18T12:03:29.4873170Z             {
2026-06-18T12:03:29.4873293Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4873392Z               "line": 634
2026-06-18T12:03:29.4873487Z             },
2026-06-18T12:03:29.4873576Z             {
2026-06-18T12:03:29.4873709Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-18T12:03:29.4873795Z               "line": 137
2026-06-18T12:03:29.4873891Z             },
2026-06-18T12:03:29.4873980Z             {
2026-06-18T12:03:29.4874115Z               "path": "crates/spt-daemon/src/pump/update.rs",
2026-06-18T12:03:29.4874200Z               "line": 184
2026-06-18T12:03:29.4874286Z             },
2026-06-18T12:03:29.4874381Z             {
2026-06-18T12:03:29.4874506Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4874601Z               "line": 78
2026-06-18T12:03:29.4874687Z             },
2026-06-18T12:03:29.4874778Z             {
2026-06-18T12:03:29.4874906Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4875011Z               "line": 114
2026-06-18T12:03:29.4875107Z             },
2026-06-18T12:03:29.4875192Z             {
2026-06-18T12:03:29.4875321Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4875417Z               "line": 185
2026-06-18T12:03:29.4875507Z             },
2026-06-18T12:03:29.4875588Z             {
2026-06-18T12:03:29.4875718Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4875817Z               "line": 260
2026-06-18T12:03:29.4875906Z             },
2026-06-18T12:03:29.4876002Z             {
2026-06-18T12:03:29.4876129Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4876232Z               "line": 292
2026-06-18T12:03:29.4876319Z             },
2026-06-18T12:03:29.4876414Z             {
2026-06-18T12:03:29.4876542Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4876638Z               "line": 323
2026-06-18T12:03:29.4876720Z             },
2026-06-18T12:03:29.4876806Z             {
2026-06-18T12:03:29.4876929Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4877021Z               "line": 346
2026-06-18T12:03:29.4877111Z             },
2026-06-18T12:03:29.4877288Z             {
2026-06-18T12:03:29.4877406Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4877505Z               "line": 388
2026-06-18T12:03:29.4877612Z             },
2026-06-18T12:03:29.4877716Z             {
2026-06-18T12:03:29.4877835Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4877936Z               "line": 398
2026-06-18T12:03:29.4878026Z             },
2026-06-18T12:03:29.4878202Z             {
2026-06-18T12:03:29.4878323Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4878411Z               "line": 410
2026-06-18T12:03:29.4878503Z             },
2026-06-18T12:03:29.4878585Z             {
2026-06-18T12:03:29.4878707Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4878811Z               "line": 420
2026-06-18T12:03:29.4878897Z             },
2026-06-18T12:03:29.4879055Z             {
2026-06-18T12:03:29.4879169Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4879270Z               "line": 439
2026-06-18T12:03:29.4879356Z             },
2026-06-18T12:03:29.4879469Z             {
2026-06-18T12:03:29.4879599Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4879685Z               "line": 449
2026-06-18T12:03:29.4879779Z             },
2026-06-18T12:03:29.4879866Z             {
2026-06-18T12:03:29.4879994Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4880099Z               "line": 94
2026-06-18T12:03:29.4880186Z             },
2026-06-18T12:03:29.4880271Z             {
2026-06-18T12:03:29.4880390Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4880491Z               "line": 120
2026-06-18T12:03:29.4880567Z             },
2026-06-18T12:03:29.4880671Z             {
2026-06-18T12:03:29.4880796Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4880891Z               "line": 135
2026-06-18T12:03:29.4880981Z             },
2026-06-18T12:03:29.4881070Z             {
2026-06-18T12:03:29.4881194Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4881283Z               "line": 162
2026-06-18T12:03:29.4881382Z             },
2026-06-18T12:03:29.4881469Z             {
2026-06-18T12:03:29.4881589Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4881688Z               "line": 174
2026-06-18T12:03:29.4881774Z             },
2026-06-18T12:03:29.4881875Z             {
2026-06-18T12:03:29.4881998Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4882109Z               "line": 185
2026-06-18T12:03:29.4882194Z             },
2026-06-18T12:03:29.4882279Z             {
2026-06-18T12:03:29.4882404Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4882494Z               "line": 451
2026-06-18T12:03:29.4882584Z             },
2026-06-18T12:03:29.4882675Z             {
2026-06-18T12:03:29.4882795Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4882899Z               "line": 573
2026-06-18T12:03:29.4882975Z             },
2026-06-18T12:03:29.4883068Z             {
2026-06-18T12:03:29.4883195Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4883286Z               "line": 171
2026-06-18T12:03:29.4883373Z             },
2026-06-18T12:03:29.4883453Z             {
2026-06-18T12:03:29.4883581Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.4883677Z               "line": 65
2026-06-18T12:03:29.4883768Z             },
2026-06-18T12:03:29.4883848Z             {
2026-06-18T12:03:29.4883966Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.4884057Z               "line": 71
2026-06-18T12:03:29.4884136Z             },
2026-06-18T12:03:29.4884231Z             {
2026-06-18T12:03:29.4884351Z               "path": "crates/spt-net/src/net/update.rs",
2026-06-18T12:03:29.4884451Z               "line": 77
2026-06-18T12:03:29.4884536Z             },
2026-06-18T12:03:29.4884728Z             {
2026-06-18T12:03:29.4884851Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4884946Z               "line": 778
2026-06-18T12:03:29.4885033Z             },
2026-06-18T12:03:29.4885119Z             {
2026-06-18T12:03:29.4885237Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4885333Z               "line": 795
2026-06-18T12:03:29.4885423Z             },
2026-06-18T12:03:29.4885605Z             {
2026-06-18T12:03:29.4885710Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4885819Z               "line": 838
2026-06-18T12:03:29.4885910Z             },
2026-06-18T12:03:29.4886001Z             {
2026-06-18T12:03:29.4886109Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4886220Z               "line": 981
2026-06-18T12:03:29.4886316Z             },
2026-06-18T12:03:29.4886405Z             {
2026-06-18T12:03:29.4886523Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4886614Z               "line": 1131
2026-06-18T12:03:29.4886708Z             }
2026-06-18T12:03:29.4886802Z           ]
2026-06-18T12:03:29.4886898Z         },
2026-06-18T12:03:29.4886994Z         "int": {
2026-06-18T12:03:29.4887093Z           "complete": true,
2026-06-18T12:03:29.4887193Z           "evidence": [
2026-06-18T12:03:29.4887285Z             {
2026-06-18T12:03:29.4887431Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T12:03:29.4887533Z               "line": 569
2026-06-18T12:03:29.4887633Z             },
2026-06-18T12:03:29.4887728Z             {
2026-06-18T12:03:29.4887853Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-18T12:03:29.4887952Z               "line": 135
2026-06-18T12:03:29.4888033Z             }
2026-06-18T12:03:29.4888124Z           ]
2026-06-18T12:03:29.4888205Z         },
2026-06-18T12:03:29.4888295Z         "unit": {
2026-06-18T12:03:29.4888399Z           "complete": true,
2026-06-18T12:03:29.4888487Z           "evidence": [
2026-06-18T12:03:29.4891447Z             {
2026-06-18T12:03:29.4891635Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4891736Z               "line": 625
2026-06-18T12:03:29.4891825Z             },
2026-06-18T12:03:29.4891924Z             {
2026-06-18T12:03:29.4892068Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4892158Z               "line": 674
2026-06-18T12:03:29.4892253Z             },
2026-06-18T12:03:29.4892358Z             {
2026-06-18T12:03:29.4892496Z               "path": "crates/spt-daemon/src/propagate.rs",
2026-06-18T12:03:29.4892596Z               "line": 696
2026-06-18T12:03:29.4892674Z             },
2026-06-18T12:03:29.4892759Z             {
2026-06-18T12:03:29.4892887Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4892988Z               "line": 513
2026-06-18T12:03:29.4893078Z             },
2026-06-18T12:03:29.4893173Z             {
2026-06-18T12:03:29.4893298Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4893392Z               "line": 638
2026-06-18T12:03:29.4893478Z             },
2026-06-18T12:03:29.4893559Z             {
2026-06-18T12:03:29.4893689Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4893784Z               "line": 675
2026-06-18T12:03:29.4893865Z             },
2026-06-18T12:03:29.4893947Z             {
2026-06-18T12:03:29.4894074Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4894175Z               "line": 947
2026-06-18T12:03:29.4894252Z             },
2026-06-18T12:03:29.4894347Z             {
2026-06-18T12:03:29.4894465Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4894564Z               "line": 969
2026-06-18T12:03:29.4894655Z             },
2026-06-18T12:03:29.4894744Z             {
2026-06-18T12:03:29.4894868Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4894949Z               "line": 986
2026-06-18T12:03:29.4895168Z             },
2026-06-18T12:03:29.4895250Z             {
2026-06-18T12:03:29.4895378Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4895477Z               "line": 1001
2026-06-18T12:03:29.4895560Z             },
2026-06-18T12:03:29.4895645Z             {
2026-06-18T12:03:29.4895768Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4895865Z               "line": 1027
2026-06-18T12:03:29.4895945Z             },
2026-06-18T12:03:29.4896131Z             {
2026-06-18T12:03:29.4896251Z               "path": "crates/spt-daemon/src/update.rs",
2026-06-18T12:03:29.4896341Z               "line": 457
2026-06-18T12:03:29.4896436Z             },
2026-06-18T12:03:29.4896528Z             {
2026-06-18T12:03:29.4896665Z               "path": "crates/spt-daemon/tests/propagate.rs",
2026-06-18T12:03:29.4896761Z               "line": 338
2026-06-18T12:03:29.4896852Z             },
2026-06-18T12:03:29.4896946Z             {
2026-06-18T12:03:29.4897064Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4897165Z               "line": 10302
2026-06-18T12:03:29.4897254Z             },
2026-06-18T12:03:29.4897348Z             {
2026-06-18T12:03:29.4897463Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4897554Z               "line": 1260
2026-06-18T12:03:29.4897649Z             },
2026-06-18T12:03:29.4897730Z             {
2026-06-18T12:03:29.4897860Z               "path": "docs/DEBUG-CONVERGE-PLAN.md",
2026-06-18T12:03:29.4897963Z               "line": 130
2026-06-18T12:03:29.4898049Z             }
2026-06-18T12:03:29.4898136Z           ]
2026-06-18T12:03:29.4898226Z         }
2026-06-18T12:03:29.4898321Z       }
2026-06-18T12:03:29.4898398Z     },
2026-06-18T12:03:29.4898493Z     {
2026-06-18T12:03:29.4898589Z       "id": "REQ-UPD-7",
2026-06-18T12:03:29.4900866Z       "title": "Origin-source update bootstrap (`spt update fetch`): pull the latest signed release directly from the GitHub release origin (`SaberMage/spt-releases`) — the per-platform artifact + its `<asset>.release.json` SignedRelease metadata — and stage it through the EXISTING verify→stage pipeline (the same `plan_verified` gate: two-key signature + channel + monotonic rollback floor + SHA-256), after which the normal consent-notif / `spt update apply` flow is unchanged. Closes the peer-only-discovery gap (REQ-UPD-1): a first-in-fleet / isolated node can update with no peer to pull from. The signed-release anchor keeps the GitHub transport untrusted-but-verified.",
2026-06-18T12:03:29.4900991Z       "requiredStages": [
2026-06-18T12:03:29.4901072Z         "impl",
2026-06-18T12:03:29.4901167Z         "unit"
2026-06-18T12:03:29.4901253Z       ],
2026-06-18T12:03:29.4901340Z       "stages": {
2026-06-18T12:03:29.4901433Z         "doc": {
2026-06-18T12:03:29.4901538Z           "complete": false,
2026-06-18T12:03:29.4901625Z           "evidence": []
2026-06-18T12:03:29.4901716Z         },
2026-06-18T12:03:29.4901811Z         "impl": {
2026-06-18T12:03:29.4901906Z           "complete": true,
2026-06-18T12:03:29.4901993Z           "evidence": [
2026-06-18T12:03:29.4902086Z             {
2026-06-18T12:03:29.4902200Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4902301Z               "line": 2497
2026-06-18T12:03:29.4902385Z             }
2026-06-18T12:03:29.4902470Z           ]
2026-06-18T12:03:29.4902561Z         },
2026-06-18T12:03:29.4902647Z         "int": {
2026-06-18T12:03:29.4902746Z           "complete": false,
2026-06-18T12:03:29.4902846Z           "evidence": []
2026-06-18T12:03:29.4902938Z         },
2026-06-18T12:03:29.4903019Z         "unit": {
2026-06-18T12:03:29.4903123Z           "complete": true,
2026-06-18T12:03:29.4903219Z           "evidence": [
2026-06-18T12:03:29.4903304Z             {
2026-06-18T12:03:29.4903409Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4903495Z               "line": 10278
2026-06-18T12:03:29.4903582Z             }
2026-06-18T12:03:29.4903667Z           ]
2026-06-18T12:03:29.4903757Z         }
2026-06-18T12:03:29.4903934Z       }
2026-06-18T12:03:29.4904025Z     },
2026-06-18T12:03:29.4904105Z     {
2026-06-18T12:03:29.4904207Z       "id": "REQ-UPD-8",
2026-06-18T12:03:29.4906730Z       "title": "Platform-safe `spt update fetch` + apply platform-guard (v0.3.1 cross-OS brick fix): `spt update fetch` stages the signed multi-platform `SignedUpdateSet` (`update-set.json` + every platform artifact it names), never a platform-blind single `SignedRelease`, so local apply selects `current_platform()` and P2P re-serve lets each peer select ITS own platform. Defense-in-depth: `apply_staged` REFUSES a staged single-release artifact unless it is platform-stamped for THIS node (an unstamped pre-v0.3.2 single, or a single stamped for another OS, fail-safe refuses — the guard that alone prevents the v0.3.1 brick where a Linux ELF was applied as `spt.exe`). UX: a friendly post-apply message (`Updated spt-core to vX.Y.Z.` + changelog URL) driven by an additive `product_version` metadata field, with a release-counter fallback when absent.",
2026-06-18T12:03:29.4906934Z       "requiredStages": [
2026-06-18T12:03:29.4907026Z         "impl",
2026-06-18T12:03:29.4907112Z         "unit"
2026-06-18T12:03:29.4907201Z       ],
2026-06-18T12:03:29.4907283Z       "stages": {
2026-06-18T12:03:29.4907384Z         "doc": {
2026-06-18T12:03:29.4907483Z           "complete": false,
2026-06-18T12:03:29.4907587Z           "evidence": []
2026-06-18T12:03:29.4907668Z         },
2026-06-18T12:03:29.4907772Z         "impl": {
2026-06-18T12:03:29.4907866Z           "complete": true,
2026-06-18T12:03:29.4907960Z           "evidence": [
2026-06-18T12:03:29.4908038Z             {
2026-06-18T12:03:29.4908180Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4908280Z               "line": 77
2026-06-18T12:03:29.4908362Z             },
2026-06-18T12:03:29.4908448Z             {
2026-06-18T12:03:29.4908575Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4908673Z               "line": 49
2026-06-18T12:03:29.4908777Z             },
2026-06-18T12:03:29.4908862Z             {
2026-06-18T12:03:29.4909063Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4909158Z               "line": 152
2026-06-18T12:03:29.4909253Z             },
2026-06-18T12:03:29.4909335Z             {
2026-06-18T12:03:29.4909458Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4909553Z               "line": 215
2026-06-18T12:03:29.4909641Z             },
2026-06-18T12:03:29.4909725Z             {
2026-06-18T12:03:29.4909845Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4909946Z               "line": 230
2026-06-18T12:03:29.4910021Z             },
2026-06-18T12:03:29.4910116Z             {
2026-06-18T12:03:29.4910241Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4910332Z               "line": 247
2026-06-18T12:03:29.4910426Z             },
2026-06-18T12:03:29.4910506Z             {
2026-06-18T12:03:29.4910641Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4910735Z               "line": 269
2026-06-18T12:03:29.4910816Z             },
2026-06-18T12:03:29.4910898Z             {
2026-06-18T12:03:29.4911022Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4911107Z               "line": 66
2026-06-18T12:03:29.4911193Z             },
2026-06-18T12:03:29.4911280Z             {
2026-06-18T12:03:29.4911407Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4911498Z               "line": 154
2026-06-18T12:03:29.4911594Z             },
2026-06-18T12:03:29.4911674Z             {
2026-06-18T12:03:29.4911793Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4911880Z               "line": 2301
2026-06-18T12:03:29.4911961Z             },
2026-06-18T12:03:29.4912047Z             {
2026-06-18T12:03:29.4912152Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4912247Z               "line": 2364
2026-06-18T12:03:29.4912544Z             },
2026-06-18T12:03:29.4912618Z             {
2026-06-18T12:03:29.4912723Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4912827Z               "line": 2374
2026-06-18T12:03:29.4912917Z             },
2026-06-18T12:03:29.4912997Z             {
2026-06-18T12:03:29.4913106Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4913193Z               "line": 2381
2026-06-18T12:03:29.4913288Z             },
2026-06-18T12:03:29.4913488Z             {
2026-06-18T12:03:29.4913598Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4913697Z               "line": 2498
2026-06-18T12:03:29.4913784Z             },
2026-06-18T12:03:29.4913874Z             {
2026-06-18T12:03:29.4913988Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4914085Z               "line": 480
2026-06-18T12:03:29.4914161Z             },
2026-06-18T12:03:29.4914242Z             {
2026-06-18T12:03:29.4914361Z               "path": "crates/xtask/src/main.rs",
2026-06-18T12:03:29.4914461Z               "line": 494
2026-06-18T12:03:29.4914537Z             }
2026-06-18T12:03:29.4914622Z           ]
2026-06-18T12:03:29.4914714Z         },
2026-06-18T12:03:29.4914800Z         "int": {
2026-06-18T12:03:29.4914904Z           "complete": false,
2026-06-18T12:03:29.4915004Z           "evidence": []
2026-06-18T12:03:29.4915087Z         },
2026-06-18T12:03:29.4915180Z         "unit": {
2026-06-18T12:03:29.4915266Z           "complete": true,
2026-06-18T12:03:29.4915368Z           "evidence": [
2026-06-18T12:03:29.4915458Z             {
2026-06-18T12:03:29.4915604Z               "path": "crates/spt-daemon/src/applyhost.rs",
2026-06-18T12:03:29.4915704Z               "line": 476
2026-06-18T12:03:29.4915780Z             },
2026-06-18T12:03:29.4915868Z             {
2026-06-18T12:03:29.4915988Z               "path": "crates/spt-daemon/src/relcache.rs",
2026-06-18T12:03:29.4916084Z               "line": 580
2026-06-18T12:03:29.4916165Z             },
2026-06-18T12:03:29.4916259Z             {
2026-06-18T12:03:29.4916361Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4916451Z               "line": 10280
2026-06-18T12:03:29.4916545Z             },
2026-06-18T12:03:29.4916632Z             {
2026-06-18T12:03:29.4916746Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4916841Z               "line": 10302
2026-06-18T12:03:29.4916932Z             }
2026-06-18T12:03:29.4917024Z           ]
2026-06-18T12:03:29.4917113Z         }
2026-06-18T12:03:29.4917208Z       }
2026-06-18T12:03:29.4917295Z     },
2026-06-18T12:03:29.4917390Z     {
2026-06-18T12:03:29.4917480Z       "id": "REQ-UPD-9",
2026-06-18T12:03:29.4920167Z       "title": "`gh_release` adapter [update] avenue (optional signing): an adapter declares `[update] avenue = \"gh_release\", repo = \"user/repo\"` (+ optional `asset`, default `adapter.spt`; + optional Ed25519 `signing_key`); spt-core's ripple compares the repo's LATEST GitHub release version against the installed adapter version and, when newer, auto-updates by fetching the release `.spt` archive (the REQ-INSTALL-9 `--release` fetch primitive) → verifies the `.spt` against `signing_key` if declared, else HTTPS+GitHub first-acquisition trust → re-extracts + re-registers the adapter root. Lets a harness adapter ship updates from its own GitHub releases with NO signing tooling or plugin coupling (removes the perri file_pull/delegated avenue blockers). Acquisition-trust mirrors `--release` + the installer first-fetch; does not alter spt-core self-update (REQ-UPD-1..8).",
2026-06-18T12:03:29.4920280Z       "requiredStages": [
2026-06-18T12:03:29.4920371Z         "doc",
2026-06-18T12:03:29.4920463Z         "impl",
2026-06-18T12:03:29.4920558Z         "unit"
2026-06-18T12:03:29.4920643Z       ],
2026-06-18T12:03:29.4920734Z       "stages": {
2026-06-18T12:03:29.4920811Z         "doc": {
2026-06-18T12:03:29.4920910Z           "complete": true,
2026-06-18T12:03:29.4921010Z           "evidence": [
2026-06-18T12:03:29.4921090Z             {
2026-06-18T12:03:29.4921300Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4921380Z               "line": 93
2026-06-18T12:03:29.4921472Z             },
2026-06-18T12:03:29.4921558Z             {
2026-06-18T12:03:29.4921662Z               "path": "docs/MANIFEST.md",
2026-06-18T12:03:29.4921763Z               "line": 240
2026-06-18T12:03:29.4921858Z             }
2026-06-18T12:03:29.4921939Z           ]
2026-06-18T12:03:29.4922024Z         },
2026-06-18T12:03:29.4922235Z         "impl": {
2026-06-18T12:03:29.4922330Z           "complete": true,
2026-06-18T12:03:29.4922436Z           "evidence": [
2026-06-18T12:03:29.4922530Z             {
2026-06-18T12:03:29.4922668Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4922765Z               "line": 128
2026-06-18T12:03:29.4922855Z             },
2026-06-18T12:03:29.4922940Z             {
2026-06-18T12:03:29.4923071Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4923169Z               "line": 533
2026-06-18T12:03:29.4923268Z             },
2026-06-18T12:03:29.4923354Z             {
2026-06-18T12:03:29.4923477Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4923566Z               "line": 415
2026-06-18T12:03:29.4923657Z             },
2026-06-18T12:03:29.4923743Z             {
2026-06-18T12:03:29.4923872Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4923972Z               "line": 461
2026-06-18T12:03:29.4924058Z             },
2026-06-18T12:03:29.4924139Z             {
2026-06-18T12:03:29.4924267Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4924368Z               "line": 869
2026-06-18T12:03:29.4924449Z             },
2026-06-18T12:03:29.4924548Z             {
2026-06-18T12:03:29.4924664Z               "path": "crates/spt-runtime/src/registry.rs",
2026-06-18T12:03:29.4924750Z               "line": 302
2026-06-18T12:03:29.4924835Z             },
2026-06-18T12:03:29.4924921Z             {
2026-06-18T12:03:29.4925031Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4925121Z               "line": 5514
2026-06-18T12:03:29.4925216Z             },
2026-06-18T12:03:29.4925313Z             {
2026-06-18T12:03:29.4925417Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4925516Z               "line": 5559
2026-06-18T12:03:29.4925604Z             },
2026-06-18T12:03:29.4925685Z             {
2026-06-18T12:03:29.4925798Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4925885Z               "line": 5696
2026-06-18T12:03:29.4925985Z             },
2026-06-18T12:03:29.4926065Z             {
2026-06-18T12:03:29.4926173Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4926260Z               "line": 5717
2026-06-18T12:03:29.4926349Z             },
2026-06-18T12:03:29.4926438Z             {
2026-06-18T12:03:29.4926533Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4926635Z               "line": 5740
2026-06-18T12:03:29.4926748Z             },
2026-06-18T12:03:29.4926839Z             {
2026-06-18T12:03:29.4926950Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4927049Z               "line": 5767
2026-06-18T12:03:29.4927129Z             }
2026-06-18T12:03:29.4927226Z           ]
2026-06-18T12:03:29.4927307Z         },
2026-06-18T12:03:29.4927397Z         "int": {
2026-06-18T12:03:29.4927497Z           "complete": false,
2026-06-18T12:03:29.4927579Z           "evidence": []
2026-06-18T12:03:29.4927716Z         },
2026-06-18T12:03:29.4927797Z         "unit": {
2026-06-18T12:03:29.4927903Z           "complete": true,
2026-06-18T12:03:29.4927997Z           "evidence": [
2026-06-18T12:03:29.4928078Z             {
2026-06-18T12:03:29.4928223Z               "path": "crates/spt-daemon/src/adapter_update.rs",
2026-06-18T12:03:29.4928312Z               "line": 259
2026-06-18T12:03:29.4928393Z             },
2026-06-18T12:03:29.4928481Z             {
2026-06-18T12:03:29.4928613Z               "path": "crates/spt-daemon/src/release.rs",
2026-06-18T12:03:29.4928783Z               "line": 657
2026-06-18T12:03:29.4928869Z             },
2026-06-18T12:03:29.4929048Z             {
2026-06-18T12:03:29.4929177Z               "path": "crates/spt-runtime/src/manifest.rs",
2026-06-18T12:03:29.4929282Z               "line": 1048
2026-06-18T12:03:29.4929367Z             },
2026-06-18T12:03:29.4929449Z             {
2026-06-18T12:03:29.4929568Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4929764Z               "line": 7404
2026-06-18T12:03:29.4929854Z             }
2026-06-18T12:03:29.4929940Z           ]
2026-06-18T12:03:29.4930039Z         }
2026-06-18T12:03:29.4930131Z       }
2026-06-18T12:03:29.4930216Z     },
2026-06-18T12:03:29.4930311Z     {
2026-06-18T12:03:29.4930398Z       "id": "REQ-WHOAMI-1",
2026-06-18T12:03:29.4932085Z       "title": "`spt whoami` is a thin ALIAS for `spt endpoint list` (full output: the SELF pin + the subnet roster) — the standalone bare-id command is dropped (the `id=$(spt whoami)` capture was never a real pattern: env vars don't persist between agent tool calls). The one new render: the `endpoint list` SELF pin carries the Self endpoint's authored `endpoint description` (info::read_info(...).resources) when present, inline after the liveness state. whoami stays a top-level hot-path verb (parse unchanged, REQ-MSG-9).",
2026-06-18T12:03:29.4932198Z       "requiredStages": [
2026-06-18T12:03:29.4932284Z         "doc",
2026-06-18T12:03:29.4932390Z         "impl",
2026-06-18T12:03:29.4932471Z         "unit"
2026-06-18T12:03:29.4932561Z       ],
2026-06-18T12:03:29.4932662Z       "stages": {
2026-06-18T12:03:29.4932743Z         "doc": {
2026-06-18T12:03:29.4932852Z           "complete": true,
2026-06-18T12:03:29.4932938Z           "evidence": [
2026-06-18T12:03:29.4933024Z             {
2026-06-18T12:03:29.4933133Z               "path": "CONTEXT.md",
2026-06-18T12:03:29.4933228Z               "line": 689
2026-06-18T12:03:29.4933321Z             }
2026-06-18T12:03:29.4933396Z           ]
2026-06-18T12:03:29.4933491Z         },
2026-06-18T12:03:29.4933582Z         "impl": {
2026-06-18T12:03:29.4933687Z           "complete": true,
2026-06-18T12:03:29.4933782Z           "evidence": [
2026-06-18T12:03:29.4933876Z             {
2026-06-18T12:03:29.4933981Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4934079Z               "line": 3048
2026-06-18T12:03:29.4934174Z             },
2026-06-18T12:03:29.4934251Z             {
2026-06-18T12:03:29.4934371Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4934456Z               "line": 3076
2026-06-18T12:03:29.4934546Z             }
2026-06-18T12:03:29.4934623Z           ]
2026-06-18T12:03:29.4934699Z         },
2026-06-18T12:03:29.4934794Z         "int": {
2026-06-18T12:03:29.4934895Z           "complete": false,
2026-06-18T12:03:29.4934995Z           "evidence": []
2026-06-18T12:03:29.4935080Z         },
2026-06-18T12:03:29.4935166Z         "unit": {
2026-06-18T12:03:29.4935267Z           "complete": true,
2026-06-18T12:03:29.4935357Z           "evidence": [
2026-06-18T12:03:29.4935442Z             {
2026-06-18T12:03:29.4935553Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4935653Z               "line": 7686
2026-06-18T12:03:29.4935743Z             },
2026-06-18T12:03:29.4935839Z             {
2026-06-18T12:03:29.4935953Z               "path": "crates/spt/src/cli.rs",
2026-06-18T12:03:29.4936049Z               "line": 7739
2026-06-18T12:03:29.4936149Z             }
2026-06-18T12:03:29.4936235Z           ]
2026-06-18T12:03:29.4936325Z         }
2026-06-18T12:03:29.4936415Z       }
2026-06-18T12:03:29.4936508Z     }
2026-06-18T12:03:29.4936597Z   ],
2026-06-18T12:03:29.4936686Z   "findings": []
2026-06-18T12:03:29.4936786Z }
